シェルタスク完了の Growl 通知

シェルタスク完了の Growl 通知

(OSX 固有)

私も、他の多くの人と同じように、完了するまでに 1 ~ 2 分かかるプロセスをシェルで開始することがよくあります (たとえば、大規模な SVN コミットなど)。その間、私はよく Alt + Tab キーを押して reddit/slashdot/wikipedia/その他を更新します。シェル プロセスが終了したときに、うなり声通知を投稿する設定があれば便利です。

私の理想の世界では、次のように動作します。「ターミナルで開いているタブからプロセスが終了したら、Growl 通知を投稿します。」

他にもこのような設定をしている人はいますか?

答え1

インストールできますグロウル通知これをする。

$ ./some_program && growlnotify Title -m Message

もちろん、コマンドを実行する前にこれについて考える必要があります。別の方法としては (ただし、これを実現する方法はわかりません)、コマンドごとに Growl 通知が表示されることになりますが、これは非常に煩わしいものになります。


ユースケースに合わせて growlnotify の使用を簡素化するには、~/bash_profile以下を編集して追加します。

function long {
    $@
    /usr/local/bin/growlnotify Finished -m 'Done'
}

これで、単にlong your_command( と同様にsudo)と入力するCtrl-Aだけで、(私のように) 実際のコマンドを常に最初に入力し、その後にプレフィックスを追加する必要がある場合は、カーソルを行の先頭に配置できます。

growlnotify残念ながら、私のbash-fuはメッセージにコマンドを追加するには不十分です


この回答に対する@mankoffのコメントによると:

コマンドの実行中に入力するだけで、後で実行されます。私は次の関数を作成しました:

function gn {
    /usr/local/bin/growlnotify Finished -m "$@"
}

使用gn svn

答え2

必要なのは、growlnotifygrowl 通知をトリガーする CLI プログラムです。次のように使用できます。

./script.sh;; growlnotify -m "done"

さらにいくつかのノブがあり、growlnotify -h詳細を確認するには使用してください

答え3

Daniel Beck の回答を修正して、このわずかな変更を加えると、非常に良いものになります。

function long {
    command=$@
    $command
    /usr/local/bin/growlnotify Finished -m "$command completed."
}

その後、「long svn up」を実行すると、「svn up が完了しました」というメッセージが表示されます。

時間のかかるシェル スクリプトを同時に多数実行する場合に非常に便利です。

答え4

使用グロウル通知

ls && growlnotify -H localhost -m "message"

関連情報