for 루프에서 일시 중지된 프로세스를 재개합니다.

for 루프에서 일시 중지된 프로세스를 재개합니다.

나는 bash에서 실행한다:

for i in ull-*.pbm; do convert $i tmp2/$i.pdf ; done

나는 Ctrl-Z실행 중이고 그 다음에 fg는 작업 ID가 있습니다. 그러나 나머지 반복은 완료될 때까지 계속되지 않습니다. 이유를 알고 싶습니다.

답변1

Ctrl-Z현재 실행 중인 프로세스를 일시 중지합니다. 표현에 있어서

for i in ull-*.pbm; do convert "$i" "tmp2/$i.pdf" ; done

convertfor(예: , 및 ) 를 제외한 모든 명령은 in현재 쉘에서 실행되는 키워드이며 do쉘은 자체적으로 일시중단될 수 없습니다(어차피 이는 사용자의 의도가 아닙니다). 따라서 클릭하고 명령이 중단되면 더 이상 처리할 것이 없기 때문에 루프가 종료됩니다.donebashCtrl-Zconvert

전체 루프를 일시 중단하려면 서브셸 환경에서 실행하면 됩니다.

(for i in ull-*.pbm; do convert "$i" "tmp2/$i.pdf" ; done)

현재 쉘 내에서 전체 루프를 걸 수 있는 유일한 쉘은 입니다 zsh.

관련 정보