
(特定於 OSX)
我和許多其他人一樣,經常發現自己在 shell 中啟動一個需要一兩分鐘才能完成的進程(例如,一個大的 svn 提交)。在那段時間裡,我經常使用 alt-tab 並刷新 reddit/slashdot/wikipedia/whatever。如果能夠設定一些在 shell 進程結束時發出咆哮通知的東西,那就太好了。
在我的理想世界中,它會像這樣工作:“如果進程剛剛從終端中打開的選項卡退出,則發布咆哮通知。”
還有人有類似的設定嗎?
答案1
您可以安裝咆哮通知去做這個。
$ ./some_program && growlnotify Title -m Message
當然,在執行命令之前您需要考慮這一點。另一個選擇(雖然我不知道如何實現這一點)是對每個命令發出咆哮通知,這會非常煩人。
為了簡化您的用例的growlnotify的使用,請編輯~/bash_profile
並添加以下內容:
function long {
$@
/usr/local/bin/growlnotify Finished -m 'Done'
}
現在你可以簡單地long your_command
(類似於sudo
)。Ctrl-A
如果您(像我一樣)總是先鍵入實際命令並隨後需要添加前綴,請將遊標定位在行的開頭。
不幸的是,我的 bash-fu 不足以將命令添加到growlnotify
訊息中
根據 @mankoff 對此答案的評論:
您只需在命令運行時鍵入即可,然後命令就會執行。我為我創建了以下函數:
function gn {
/usr/local/bin/growlnotify Finished -m "$@"
}
用於gn svn
。
答案2
您需要的是growlnotify
一個 CLI 程式來觸發咆哮通知。您可以將其用作:
./script.sh;; growlnotify -m "done"
它還有更多可以使用的旋鈕,用於growlnotify -h
獲取更多信息
答案3
修改丹尼爾貝克的答案,如果你做這個輕微的改變,它會變得非常好。
function long {
command=$@
$command
/usr/local/bin/growlnotify Finished -m "$command completed."
}
然後,當您執行“long svn up”時,您將看到訊息“svn upcompleted”。
如果您同時執行許多耗時的 shell 腳本,那就太好了。
答案4
使用咆哮通知。
ls && growlnotify -H localhost -m "message"