Wenn ich auf langsame Befehle gewartet habe (z. B. Operationen an großen Datenbanken), fange ich an, etwas anderes zu tun, und merke oft nicht lange, dass es beendet ist, und verschwende wertvolle Zeit. Ich suche nach einer Möglichkeit für die Shell, mich zu warnen (was bedeutet, dass Sie einen benutzerdefinierten Befehl ausführen, den ich bestimmen kann), wenn ein Befehl beendet wurde, der länger als X Sekunden ausgeführt wurde, und ich die Eingabeaufforderung zurückerhalten habe.
Ich benutze Bash, aber auch Lösungen für andere Shells wären interessant.
bash
notifications
Tgr
quelle
quelle
Antworten:
Dieses Skript, wenn in Ihr
.bashrc
, führt jeden Befehl aus, der Ihnen gefällt, wenn die Eingabeaufforderung nach längerer Ausführung eines Befehls zurückgegeben wird - passen Sie die "lange Zeit" an (nach dem-gt
) in Sekunden, und innerhalb der geschweiften Klammern in derselben Zeile können Sie beliebige Befehle ausführen. Sie können sich sogar eine E-Mail mit dem Host senden, auf der dies geschehen ist, sowie den zuletzt ausgeführten Befehl und den Statuscode.quelle
echo -e "\a"
was gut mit PuTTY funktioniert (Sie können es so konfigurieren, dass das Taskleistensymbol blinkt, anstatt einen Ton zu geben).Funktioniert, aber es ist hässlich und unpraktisch, den Benachrichtigungsbefehl jedes Mal manuell anzufügen. auch leicht zu vergessen. (Mit kann eine Benachrichtigung an einen bereits laufenden Prozess angehängt werden
wait
wie Diese Antwort erklärt , aber das ist noch hässlicher.)quelle
Ich verwende normalerweise eine Popup-Benachrichtigung.
xmessage
tendenziell verfügbar:Oder fügen Sie eine Erinnerung hinzu (abhängig von der
atd
Daemon):quelle