我有一个bash脚本在循环中执行一个程序,但是我想为程序的每次执行设置一个最大时间限制,即我只想在超过时间限制时取消当前执行但是我不要我想打破整个循环。
谢谢!
答案 0 :(得分:1)
我的Ubuntu上有一个名为timeout的命令。你可以试试这个:
timeout 1s yes
这将使过程是1秒后结束。
注意:使用此命令,也可以将信号指定为参数。
您还可以使用以下命令验证持续时间constaint是否得到遵守:
time timeout 3s yes
答案 1 :(得分:0)
这适用于任何Posix shell,包括bash ......
#!/bin/sh
while :; do
echo starting command
while :; do
trap break SIGTERM
sleep 5; kill $$ # 5 second timeout
sleep 10 # replace this sleep with your real command
done
echo Command terminated, restarting...
done