为什么是这样?
if true; then sleep 3 &; fi
bash: syntax error near unexpected token `;'
我想跑
sleep 3
在后台运行,以便命令[“sleep 3”只是一个例子]将以“并行”方式运行,因此它完成得更快。但我得到这个:
bash: syntax error near unexpected token `;'
错误信息。为什么?为什么我无法将任务发送到后台?
答案1
这是因为&
已经是一个语句分隔符,所以你不应该把;
它放在后面。
答案2
在这种情况下,似乎您不需要分隔命令(&
将它们本身分隔开)。
例如。
$> if true; then (sleep 3; echo ok) & fi
[1] 14224
$> ok
答案3
尝试将其编写为多行:
if true; then
sleep 3 &
fi