Obwohl andere Antworten bereits die meisten Möglichkeiten erörterten, Benachrichtigungen über einen abgeschlossenen Auftrag zu erhalten, möchte ich meine zwei Cent angeben, da Sie Ihre Frage in folgendem Format gestellt haben:
Der Ort, an dem ich arbeite, verfügt über Befehle, deren Ausführung viel Zeit in Anspruch nimmt.
Ich habe das gleiche Problem. Manchmal kann etwas 15 Minuten lang laufen.
Ich habe folgende Funktion in meiner .bashrc:
# push a notification to your phone. can be handy if you're running a
# build and you want to be notified when it's finished.
push() {
curl -s -F "token=PUSHOVER_TOKEN" \
-F "user=PUSHOVER_USER" \
-F "title=terminal" \
-F "message=$1" https://api.pushover.net/1/messages.json > /dev/null 2>&1
}
Hierbei wird die Pushover-App verwendet, um eine Benachrichtigung an mein Telefon zu senden. Auf diese Weise kann ich zum Mittagessen gehen oder an einer Besprechung teilnehmen und trotzdem über Jobs informiert werden, die ich auf meinem Computer gestartet habe, bevor ich abgereist bin.
Ich benutze es auf folgende Weise:
command_to_run && push "yes! command finished successfully!" || push "awww man! something failed :-("
Wenn der Befehl einen korrekten Beendigungscode zurückgibt, wird der erste Push ausgeführt. Bei einem Fehler wird der zweite ausgeführt.
Ofc müssen Sie einen Benutzer bei Pushover erstellen und eine App registrieren, um Benachrichtigungen von https://pushover.net/ senden zu können.
hoffe das hat geholfen!
fg;say "Job finished"
das funktionieren würde. Aber ... gibt es eine Möglichkeit, wie es weiter automatisiert werden kann - z. B. das Klingeln oder das Benachrichtigen nach Abschluss eines Auftrags, der mehr als eine Minute dauert? Gibt es eine Shell-Variable, z. B. in Bash, die die verstrichene Zeit des letzten Befehls angibt?