2016-07-22 24 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