所以我的while循环工作正常,但是当我添加timeout命令时它会给我这个错误:
bash: syntax error near unexpected token `do'
这是命令:
timeout 30s while [ $? = 0 ]; do kill -0 $MYPID 2>/dev/null; if [ $? = 0 ]; then echo The Process PID is running && date +%r; else echo the Process PID is NOT running && date +%r; fi; done
答案 0 :(得分:2)
Bash看到了这一点:您想要使用参数timeout
,30s
,while
,[
,$?
执行命令=
, 0
和]
。然后(因为;
)你要执行do ...
。
当bash解析您的行时,它会抱怨do
关键字不在此处的法律构造中......它是意外的!
要快速修复,请将命令包装起来:
timeout 30s bash -c 'while ....'