我想知道为什么在循环中使用异步命令会出错?
$ for i in {1..8}; do sleep 100 & ; done
bash: syntax error near unexpected token `;'
Run Code Online (Sandbox Code Playgroud)
如果我把它写成
$ for i in {1..8}; do
> sleep 100 &
> done
Run Code Online (Sandbox Code Playgroud)
这工作正常。
我怎样才能把它写在一行而不出错?
Ste*_*itt 43
删除;:
for i in {1..8}; do sleep 100 & done
Run Code Online (Sandbox Code Playgroud)
&分隔 commands,因此 the;是无关紧要的(并且 shell 期望在&和之间有一些东西;)。
Pan*_*dya 22
将您的do操作分组在大括号中:
for i in {1..8}; do { sleep 100 & }; done
Run Code Online (Sandbox Code Playgroud)
对您和 Bash 来说都很容易理解!