Réveil en ligne de commande pour Ubuntu
recommandation de logiciel nécessaire! Je recherche un réveil à utiliser sur ma machine Ubuntu 20.04, avec une interface de ligne de commande pour me permettre de définir des alarmes à partir de la ligne de commande. En effet, dans mon flux de travail, je dois souvent définir de nombreuses alarmes par jour, généralement seulement environ une heure. Puisque je fais cela si souvent, il est difficile de jouer tout le temps avec une interface graphique.
J'ai essayé les horloges GNOME bien sûr, mais il semble qu'il n'y ait pas d'interface de ligne de commande.
Quelqu'un peut-il recommander quelque chose comme ce que je recherche? Pas trop pointilleux, juste besoin de lui pour faire son travail.
Merci d'avance :)
Réponses
Vous pouvez utiliser la atcommande (non installée par défaut sur Ubuntu 20.04). Il vous permet d'exécuter une commande à un moment précis. Vous pouvez par exemple faire apparaître une boîte de dialogue Zenity pour servir d'alarme.
Vous pouvez utiliser la sleepcommande, qui est préinstallée sur Ubuntu, pour exécuter une commande après le laps de temps spécifié comme:
sleep NUMBER[SUFFIX] && command
De man sleep:
DESCRIPTION Pause for NUMBER seconds. SUFFIX may be 's' for seconds (the default), 'm' for minutes, 'h' for hours or 'd' for days. Unlike most implementations that require NUMBER be an integer, here NUMBER may be an arbitrary floating point number. Given two or more arguments, pause for the amount of time specified by the sum of their values.
Par exemple, vous pouvez exécuter:
sleep 3h 5m 25s && mpv file
pour ouvrir fileavec le mpvlecteur multimédia après 3 heures, 5 minutes et 25 secondes.
sleepest parfaitement utilisable et simple pour exécuter des commandes après un certain temps, mais atest préférable pour exécuter une commande à (pas de surprise ici) un moment spécifié.
Néanmoins, un comportement similaire peut être implémenté avec sleep. Voici un exemple de script:
#!/bin/bash
alarm_time=$1 command=$2
# convert alarm_time and current_time to seconds since 1970-01-01 00:00:00 UTC
# and calculate their difference
alarm_time=$(date -d "$alarm_time" +"%s")
current_time=$(date +"%s") diff=$(( $alarm_time - $current_time ))
# convert the time difference to hours
sleep_time=$(echo "scale=5; $diff/3600" | bc)
# run the command at the specified time
sleep "$sleep_time"h && $command
Après l'avoir enregistré sous alarm.sh(choisissez votre nom préféré) et l'avoir rendu exécutable, vous pouvez l'exécuter en tant que:
/path/to/alarm.sh time command
Vous pouvez ajouter le script à votre chemin pour un accès plus facile, si vous le souhaitez, et vous pouvez également coder en dur la commande à exécuter en la remplaçant $2par la commande que vous souhaitez exécuter.