2014-01-14 40 views
0

我想在長時間運行命令完成時獲得通知。如何在程序執行時間超過x秒的情況下執行腳本

例如,我需要在git pull完成時獲得通知。 現在我可以使用git pull; tput bel和終端應用程序會告訴我,控制檯需要我的關注。

對於我在運行超過10秒的shell中輸入的每個命令,是否可以執行tput bel

我使用tput bel,因爲它可以從本地和遠程ssh會話中使用。

+2

請參閱[自動計時每個執行的命令並顯示在Bash提示?](http://stackoverflow.com/questions/1176386/automatically-timing-every-executed-command-and-show-in-bash-prompt)並擴展以適應您的需求。 – RedX

回答

1

謝謝@RedX我找到了我需要的東西。我結束了加入這個對我的.bash_profile:

function timer_start { 
    timer=${timer:-$SECONDS} 
} 

function timer_stop { 
    timer_show=$(($SECONDS - $timer)) 
    if [[ $timer_show -ge '10' ]]; then 
    tput bel 
    fi 
    unset timer 
} 

trap 'timer_start' DEBUG 
PROMPT_COMMAND=timer_stop 

這將執行tput bell,如果我的終端會彈失焦,每一個我的命令被執行超過10秒更長的時間。

此外,您可以將$ timer_show添加到您的PS1,以顯示每個命令的持續時間(以秒爲單位)。

相關問題