我正在做以下事情:
timeout 180 bash myscript.txt
myscript.txt应该在不到180秒的时间内完全执行。如果不是,我想要执行emergencyscript.txt。是否可以这样做?
像
timeout 180 [bash myscript.txt] [bash emergencyscript.txt]
答案 0 :(得分:4)
如果命令超时,timeout
的退出状态为124。您可以明确地测试它。
timeout 180 bash myscript.txt
exit_status=$?
if [[ $exit_status -eq 124 ]]; then
bash emergencyscript.txt
fi
exit_status
的任何其他值都是myscript.txt
运行完成的结果。
答案 1 :(得分:0)
也许会尝试检查超时是否失败?
timeout 180 bash myscript.txt
if [ $? -ne 0 ]
then
#....do stuff....
fi
这取决于超时或脚本如果耗时太长则给出非零退出值。