Growl-Benachrichtigungen für den Abschluss von Shell-Aufgaben

Growl-Benachrichtigungen für den Abschluss von Shell-Aufgaben

(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_profileund 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-Aden 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 growlnotifyNachricht 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, growlnotifyist 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 -hfü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"

verwandte Informationen