2016-07-22 26 views
0

我做了以下内容:击:如果命令超时,执行别的

timeout 180 bash myscript.txt 

myscript.txt应该在小于180秒内完全执行。如果不是,我想要执行emergencyscript.txt。是否有可能这样做?

timeout 180 [bash myscript.txt] [bash emergencyscript.txt] 

回答

2

timeout退出状态是124,如果命令超时。你可以明确地测试它。

timeout 180 bash myscript.txt 
exit_status=$? 
if [[ $exit_status -eq 124 ]]; then 
    bash emergencyscript.txt 
fi 

exit_status为任何其他值是运行至完成的myscript.txt结果。

0

也许尝试检查超时是否失败?

timeout 180 bash myscript.txt 
if [ $? -ne 0 ] 
then 
#....do stuff.... 
fi 

这取决于超时或脚本提供一个非零的退出值,如果它需要很长的时间。

+0

固定!我更喜欢你的答案,在检查时更具体 – Dylan