2015-02-23 108 views
0

我有一段脚本,在一段时间后执行一个不能停止的命令,除非你终止它。如何停止命令并继续我的脚本?Bash脚本终止一个命令并继续

假设我运行了apt-get update,我想在N段时间内停止它,然后继续我的脚本。

+0

你可以显示你的脚本吗? – anubhava 2015-02-23 12:37:16

+0

你看过'timeout'命令吗? – pfnuesel 2015-02-23 12:41:39

+0

回声-e “进入监控卡ID C:\” 读monitorcard 回声 “显示器ID是:$ monitorcard” 回声 “开始扫描WPS的” EVAL '洗-i $ monitorcard' 不,我没有yey ..但我会 – Ariox 2015-02-23 12:44:21

回答

0

这是一个sh脚本,使使用“暂停”命令的示例:

运行“睡眠30”,超时10秒,然后杀“术语”,等待3秒,然后杀死 - 9

TIMEOUT_TO_SIGNAL=10 
SIGNAL_AFTER_TIMEOUT=TERM 
WAIT_FOR_KILL="3s" 
COMMAND_TO_EXEC="sleep 30" 

echo "Run \"$COMMAND_TO_EXEC\", timeout on $TIMEOUT_TO_SIGNAL seconds, then kill \"$SIGNAL_AFTER_TIMEOUT\", wait $WAIT_FOR_KILL, then kill -9" 
timeout --signal=$SIGNAL_AFTER_TIMEOUT --kill-after=$WAIT_FOR_KILL $TIMEOUT_TO_SIGNAL $COMMAND_TO_EXEC 

if [ $? -eq 124 ] 
then 
    echo "The command $COMMAND_TO_EXEC timed out" 
else 
    echo "The command $COMMAND_TO_EXEC executed without timeout" 
fi