Befehlszeilen-Wecker für Ubuntu
Softwareempfehlung erforderlich! Ich suche nach einem Wecker für meinen Ubuntu 20.04-Computer mit einer Befehlszeilenschnittstelle, über die ich Alarme über die Befehlszeile einstellen kann. Dies liegt daran, dass ich in meinem Workflow häufig viele Alarme pro Tag einstellen muss, normalerweise nur etwa eine Stunde später. Da ich das so oft mache, ist es ein Schmerz, die ganze Zeit mit einer GUI herumzuspielen.
Ich habe natürlich GNOME-Uhren ausprobiert, aber es scheint, dass es keine Befehlszeilenschnittstelle gibt.
Kann mir jemand etwas empfehlen, wonach ich suche? Nicht zu wählerisch, brauche es nur, um seine Arbeit zu erledigen.
Danke im Voraus :)
Antworten
Sie können den atBefehl verwenden (nicht standardmäßig unter Ubuntu 20.04 installiert). Sie können einen Befehl zu einem bestimmten Zeitpunkt ausführen. Sie können beispielsweise ein Zenity-Dialogfeld als Alarm anzeigen lassen.
Sie können den unter sleepUbuntu vorinstallierten Befehl verwenden, um einen Befehl nach der angegebenen Zeit auszuführen:
sleep NUMBER[SUFFIX] && command
Von 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.
Sie können beispielsweise Folgendes ausführen:
sleep 3h 5m 25s && mpv file
nach 3 Stunden, 5 Minuten und 25 Sekunden filemit dem mpvMedia Player öffnen .
sleepist perfekt verwendbar und unkompliziert, um Befehle nach einer bestimmten Zeit auszuführen. Es ist jedoch atbesser, einen Befehl zu einer bestimmten Zeit (hier keine Überraschung) auszuführen .
Trotzdem kann ein ähnliches Verhalten mit implementiert werden sleep. Hier ist ein Beispielskript:
#!/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
Nachdem Sie es gespeichert haben alarm.sh(wählen Sie Ihren bevorzugten Namen) und es ausführbar gemacht haben, können Sie es ausführen als:
/path/to/alarm.sh time command
Sie können das Skript zu Ihrem Pfad hinzufügen, um den Zugriff zu vereinfachen, wenn Sie möchten, und Sie können den auszuführenden Befehl auch hart codieren, indem Sie ihn durch $2den Befehl ersetzen, den Sie ausführen möchten.