Solte o ;
:
for i in {1..8}; do sleep 100 & done
&
separa os comandos , então o ;
é irrelevante (e o shell espera algo entre &
e ;
).
Eu me pergunto por que há um erro ao usar um comando assíncrono em um loop?
$ for i in {1..8}; do sleep 100 & ; done
bash: syntax error near unexpected token ';'
Se eu escrevê-lo como
$ for i in {1..8}; do
> sleep 100 &
> done
isso funciona bem.
Como posso escrevê-lo em uma linha sem erro?
Solte o ;
:
for i in {1..8}; do sleep 100 & done
&
separa os comandos , então o ;
é irrelevante (e o shell espera algo entre &
e ;
).
Group suas ações do
em chaves:
for i in {1..8}; do { sleep 100 & }; done
Fácil de entender para você e para o Bash!
Tags bash