[bash] 루프 백그라운드 작업

bash의 for 루프에서 백그라운드 작업을 실행하려고합니다.

for i in $(seq 3); do echo $i ; sleep 2 & ; done

오류가 발생합니다.

bash: syntax error near unexpected token `;'

zsh에서는 명령 줄이 작동합니다.



답변

제거; 수면 후

for i in $(seq 3); do echo $i ; sleep 2 & done

BTW, 이러한 루프는 적절한 들여 쓰기를 사용하여 별도의 줄에 작성하는 것이 좋습니다 (쉘 스크립트 파일에 작성하는 경우).

for i in $(seq 3)
do
   echo $i
   sleep 2 &
done


답변

백그라운드 명령을 ()에 넣을 수 있습니다.

for i in $(seq 3); do echo $i ; (sleep 2 &) ; done


답변