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
$i백그라운드 명령 에서이 작업을 수행 할 때 작업 제어 $i에서의 실제 값 대신 프로세스 이름에 포함 된 것으로 표시되는 이유는 무엇 $i입니까?
for I in <whatever>; do rm -fr $I & done...- jobs> rm -fr $I각 작업에 대해 실제 디렉토리가 삭제되는 대신 여러 번