I try to run a background job in a for loop in bash:
for i in $(seq 3); do echo $i ; sleep 2 & ; done
I get error:
bash: syntax error near unexpected token `;'
In zsh the command line works.
I try to run a background job in a for loop in bash:
for i in $(seq 3); do echo $i ; sleep 2 & ; done
I get error:
bash: syntax error near unexpected token `;'
In zsh the command line works.
Remove the ; after sleep
for i in $(seq 3); do echo $i ; sleep 2 & done
BTW, such loops are better written on separate lines with proper indentation (if you are writing this in a shell script file).
for i in $(seq 3)
do
echo $i
sleep 2 &
done
You can put the background command in ( )
for i in $(seq 3); do echo $i ; (sleep 2 &) ; done
If you want to run a block of code in the background, you could do the below. Just put the block of code around the curly braces.
{ for i in $(seq 3); do echo $i ; sleep 2 ; done } &