예를 들어, 다음을 실행하면:
sleep 1 & sleep 2 & sleep 3
나는 즉시 다음과 같은 프로세스 ID를 얻습니다.
[1] ...
[2] ...
sleep 3
그런 다음 실행이 완료될 때까지 셸이 정지된 후 동시에 다음을 인쇄합니다.
[1]- Done sleep 1
[2]+ Done sleep 2
이 동작을 일으키는 기본 구현이 무엇인지 궁금합니다.
답변1
쉘의 대기는 sleep
배경이 없는 마지막 쉘로 인해 발생합니다.
정보
[1]- Done sleep 1
[2]+ Done sleep 2
일반적으로 인쇄는 편리한 시간에 이루어지며, 대부분 메시지가 표시될 때 이루어집니다. 노력하다
sleep 3 &
그리고 10까지 센다. 출력이 생성되지 않습니다. 그러나 Enter 키를 누르면 새 프롬프트가 표시되고 그 전에는 메시지가 표시됩니다 Done
.
이것은 귀하가 겪고 있는 것과 동일한 상황입니다.