你問兩個完全不同的東西在這裏。首先,你問做什麼在一分鐘後得到的蜂鳴聲,然後你問的命令完成後獲得的蜂鳴聲。這兩件事是完全不同的。
# bof [command] [args...] - Beep on Finish
bof() {
"[email protected]"; local r=$?
printf '\a'
return $r
}
此函數運行一個命令,然後發出嗶嗶聲一次次命令的完成,同時確保該命令的退出代碼是函數的退出代碼。
# bot [command] [args...] - Beep on Timeout
bot() {
{ sleep 60; printf '\a'; } &
"[email protected]"; local r=$?
kill $!
return $r
}
此功能,除非該指令完成的時間之前(這裏,60
秒,一分鐘)在一定時間後發出蜂鳴聲一次。
# bem [command] [args...] - Beep every Minute
bem() {
{ while sleep 60; do printf '\a'; done; } &
"[email protected]"; local r=$?
kill $!
return $r
}
這是蜂鳴每分鐘,只要你的命令仍然活着的早期功能的一個簡單的適應。
# bofem [command] [args...] - Beep on Finish every Minute
bofem() {
"[email protected]"; local r=$?
until read -t 60 -n 1; do printf '\a'; done
return $r
}
最後,它會發出蜂鳴下命令完成每分鐘但僅後一個功能。一直髮出聲響,直到你打一個鍵停止。然後,該函數返回您的命令的退出代碼。
我認爲這將涵蓋所有你可能用於解決問題的基礎。
使用(並結合),它們像這樣:
bof rsync foo bar: # Beep when rsync finishes.
bot ssh foo 'ls bar/' # Beep if the 'ssh' process takes too long to run.
我希望提供的腳本是你需要的 – Drakosha 2009-04-14 08:34:20