我有脚本,我假设有时挂起。
我的目标是等到脚本完成或杀死它,如果它在30秒后没有出现一些返回码。
(function) & pid=$!
wait $pid || sleep 30 || kill -9 $pid
finished=$?
所以我在考虑上面。我不想浪费额外的第二次睡觉,如果过程提前结束我为什么要等待。
这是正确的还是更好的方法?
答案 0 :(得分:2)
有一种更好的方法:使用timeout
命令。
有关详细信息,请参阅Timeout a command in bash without unnecessary delay。