如何在bash中加入时间限制

时间:2017-10-01 11:03:29

标签: bash unix solaris

我正在用bash创建一个简单的问答游戏。我想用一定的时间限制来运行这个问题。怎么做? TIA

我尝试使用此命令:

sleep 2m && kill $$ & 

但它会终止整个脚本。 另外:我想显示一个“次数”短语

3 个答案:

答案 0 :(得分:2)

与原始尝试类似,请考虑创建一个睡眠并发送信号的子流程,但这次one that you catch

handle_hup() {
  echo "Times up"
  # do more things
}

trap handle_hup SIGHUP

mypid=$$
(sleep 2m && kill -HUP $mypid)&

echo "Quiz question: ..."

答案 1 :(得分:1)

timeout命令可以执行您想要的操作。例如

$ timeout 120 your-game-command

您可以检查退出状态,以了解命令是否按照文档超时:

  

如果命令超时,则退出状态124

答案 2 :(得分:0)

由于您尚未显示完整的代码或要求,因此仅在此处提供一小段代码,等待用户输入10秒,否则会打印该用户已超时,您可以把它作为一个启动点,并可以相应地调整到你的脚本。

read -t 10 -p "User, please enter your Input or it will time out in 10 seconds." ; echo ; date