(OSX-spezifisch)
Ich starte, wie viele andere außer mir, oft einen Prozess in der Shell, der ein oder zwei Minuten dauert (zum Beispiel ein großes svn-Commit). In dieser Zeit drücke ich oft die Alt-Tab-Taste und aktualisiere reddit / slashdot / wikipedia / whatever. Es wäre toll, wenn etwas eingerichtet wäre, das eine Growl-Benachrichtigung sendet, wenn der Shell-Prozess abgeschlossen ist.
In meiner idealen Welt würde das so aussehen: "Wenn ein Prozess gerade von einem Tab beendet wird, der im Terminal geöffnet ist, poste eine Growl-Benachrichtigung."
Hat noch jemand so etwas eingerichtet?
growlnotify
Einstellungen für die Anwendungsbenachrichtigung so konfigurierenGrowl.prefPane
, dass sie einen Audio-Benachrichtigungston enthalten. Sie kann jedoch nicht abhängig von dem Befehl geändert werden, den Sie ausführensay
. Aber es ist viel weniger gruselig.Antworten:
Sie können hierzu growlnotify installieren .
$ ./some_program && growlnotify Title -m Message
Natürlich müssen Sie darüber nachdenken, 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.
Bearbeiten
~/bash_profile
und fügen Sie Folgendes hinzu , um die Verwendung von growlnotify für Ihren Anwendungsfall zu vereinfachen :jetzt kannst du einfach
long your_command
(ähnlich wiesudo
).Ctrl-A
Positioniert den Cursor am Anfang der Zeile, wenn Sie (wie ich) immer zuerst den eigentlichen Befehl eingeben und anschließend das Präfix hinzufügen müssen.Mein Bash-Fu reicht leider nicht aus, um den Befehl der
growlnotify
Nachricht hinzufügen zu könnenper @ mankoffs Kommentar zu dieser Antwort:
Sie können einfach eingeben, während der Befehl ausgeführt wird. Anschließend wird er ausgeführt. Ich habe folgende Funktion für mich erstellt:
Verwenden Sie als
gn svn
.quelle
Was Sie brauchen
growlnotify
, ist ein CLI-Programm zum Auslösen von Growl-Benachrichtigungen. Sie könnten es verwenden als:Es hat ein paar weitere Knöpfe, mit denen Sie spielen können. Verwenden Sie diese
growlnotify -h
für weitere Informationenquelle
&&
und||
haben, aber wenn man nur an einer Meldung interessiert ist, die nach der Ausführung des Befehls angezeigt wird,;;
ist dies narrensicher. =)Wenn Sie die Antwort von Daniel Beck ändern, wird es sehr schön, wenn Sie diese kleine Änderung vornehmen.
Wenn Sie dann "long svn up" ausführen, wird die Meldung "svn up finished" angezeigt.
Sehr schön, wenn Sie viele zeitaufwändige Shell-Skripte gleichzeitig ausführen.
quelle
Nachdem OSX 10.8 und höher über native Benachrichtigungen verfügt, erreiche ich dasselbe Ziel über Terminal-Notifier :
$ brew install terminal-notifier
Fügen Sie dies hinzu zu
~/.bash_profile
:Stellen Sie sicher, dass Sie Ihr Profil mit
. ~/.bash_profile
(nicht erforderlich für zukünftige Terminalsitzungen) bezogen haben, da Ihr Profil beim Erstellen einer Sitzung automatisch bezogen wird.Testen Sie mit Ihrem Lieblingsbefehl, gefolgt vom Funktionsaufruf.
Die Argumente für Terminal-Notifier können sich verbessern, aber ein schneller Versuch, den vorherigen Befehl abzurufen, um ihn an die Funktion zu übergeben, war nicht erfolgreich und bietet mir alle Funktionen, die ich benötige. Hinzufügen
;gn
, um eine Benachrichtigung am Ende eines lang andauernden Prozesses zu erhalten.quelle
Benutze growlnotify .
quelle
Dies ist eine Möglichkeit, es für "lange laufende" Prozesse automatisch aufzurufen : http://hints.macworld.com/article.php?story=20071009124425468
Es
$PROMPT_COMMAND
schließt sich an und benachrichtigt den Abschluss von Prozessen, die länger als 10 Sekunden dauern. Möglicherweise müssen Sie die Einstellungen an Ihre Umgebung und Ihren Arbeitsablauf anpassen (z. B. das Ignorieren des Abschlussesless
oder des Editoraufrufs), aber es scheint ziemlich gut zu funktionieren.quelle
Ich stöberte nur noch ein wenig herum und fand eine einfache Methode dafür. Es ist ein bisschen mehr manuell als ich es gerne hätte, aber hier ist es.
&& growlnotify -m "Message"
> an einen langen Prozess an.Das funktioniert gerade für mich, aber ich könnte es besser machen, denke ich.
quelle
OSX 10.9+ -Lösung ohne Software von Drittanbietern:
In OSX 10.9 und höher können Sie den AppleScript-Befehl verwenden
display notification
, um ein Knurren vom Terminal aus wie folgt anzuzeigen:Wenn Sie nicht jedes Mal alles eingeben möchten, können Sie Folgendes verwenden
alias
:Beispiel:
quelle