如果程序执行时间超过x秒,如何执行脚本

时间:2014-01-14 11:38:08

标签: bash unix

我希望在长时间运行命令完成时获得通知。

例如,我需要在git pull完成时获得通知。 现在我可以使用git pull; tput bel,终端应用程序会告诉我控制台需要我注意。

对于我在运行时间超过10秒的shell中输入的每个命令,是否可以执行tput bel

我正在使用tput bel,因为它适用于本地和远程ssh会话。

1 个答案:

答案 0 :(得分: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,以显示每个命令的持续时间。