为什么我可以在 zsh 中这样做:
zsh$ sleep 5 &; echo foo
[1] 14742
foo
但不是在抨击?
bash$ sleep 5 &; echo foo
bash: syntax error near unexpected token `;'
有没有办法在 bash 中做等效的事情?
我通常不使用zsh
,但这似乎是等效的:
sleep 5 & echo foo
它也适用于 zsh
.
我检查了 zsh 文档,没有看到组合&;
有任何特殊意义。这似乎只是一个后台命令,后跟一个空命令,被忽略。 另一方面,bash
不允许空命令;如果键入以下内容,则会收到相同的错误:
; echo foo
一种方法是为后台进程生成一个子 shell:
bash$ (sleep 5 &); echo foo
但我不确定它是否与您正在寻找的意义严格等效。