
(OSX-spezifisch)
Ich, wie viele andere auch, starte oft einen Prozess in der Shell, der ein oder zwei Minuten dauert (z. B. ein großes SVN-Commit). Während dieser Zeit drücke ich oft Alt-Tab und aktualisiere Reddit/Slashdot/Wikipedia/was auch immer. Es wäre toll, etwas einzurichten, das eine Growl-Benachrichtigung sendet, wenn der Shell-Prozess abgeschlossen ist.
In meiner idealen Welt würde es folgendermaßen funktionieren: „Wenn ein Prozess gerade aus einem im Terminal geöffneten Tab beendet wurde, poste eine Growl-Benachrichtigung.“
Hat sonst noch jemand so etwas eingerichtet?
Antwort1
Sie können installierenknurrbenachrichtigungum dies zu tun.
$ ./some_program && growlnotify Title -m Message
Natürlich müssen Sie daran denken, bevor Sie Ihren Befehl ausführen. Die Alternative (ich weiß allerdings nicht, wie ich das erreichen soll) wäre eine Growl-Benachrichtigung für jeden einzelnen Befehl, was wahnsinnig nervig wäre.
Um die Verwendung von growlnotify für Ihren Anwendungsfall zu vereinfachen, bearbeiten ~/bash_profile
und fügen Sie Folgendes hinzu:
function long {
$@
/usr/local/bin/growlnotify Finished -m 'Done'
}
jetzt kannst du einfach long your_command
(ähnlich wie sudo
) Ctrl-A
den Cursor an den Zeilenanfang positionieren, wenn du (wie ich) immer zuerst den eigentlichen Befehl eintippst und das Präfix danach hinzufügen musst.
Mein Bash-Fu reicht leider nicht aus, um den Befehl zur growlnotify
Nachricht hinzufügen zu können
gemäß @mankoffs Kommentar zu dieser Antwort:
Du kannst einfach während der Ausführung des Befehls tippen, dieser wird dann ausgeführt. Ich habe mir folgende Funktion erstellt:
function gn {
/usr/local/bin/growlnotify Finished -m "$@"
}
Benutzen als gn svn
.
Antwort2
Was Sie brauchen, growlnotify
ist ein CLI-Programm zum Auslösen von Growl-Benachrichtigungen. Sie können es wie folgt verwenden:
./script.sh;; growlnotify -m "done"
Es hat ein paar mehr Knöpfe, mit denen Sie spielen können, verwenden Sie growlnotify -h
für weitere Informationen
Antwort3
Wenn Sie diese kleine Änderung vornehmen, wird die Antwort von Daniel Beck sehr schön.
function long {
command=$@
$command
/usr/local/bin/growlnotify Finished -m "$command completed."
}
Wenn Sie dann „long svn up“ ausführen, wird die Meldung „svn up abgeschlossen“ angezeigt.
Sehr praktisch, wenn Sie viele zeitaufwändige Shell-Skripte gleichzeitig ausführen.
Antwort4
Verwendenknurrbenachrichtigung.
ls && growlnotify -H localhost -m "message"