이 명령을 실행하면 sleep 10
터미널이 10초 동안 기다립니다. sleep
터미널 운영도 마찬가지입니다. 이 작업을 수행하면 어떻게 되나요 sleep 10 &
? 첫 번째 경우에는 터미널에서 실행되지만 백그라운드에서는 무엇을 하고 있나요? 특히 무엇이 sleep
당신을 잠들게 하려는 걸까요?
답변1
sleep
백그라운드에서 실행 되더라도 의도된 목적, 즉 스크립트 내에서 다른 작업을 지연시키려는 목적을 수행하지는 않습니다.
예:
echo "foo" && sleep 10s && echo "bar"
foo를 인쇄하고 10초 동안 기다린 다음 bar를 인쇄합니다. 두 번째는 echo
sleep이 종료될 때까지 기다리고 실행이 성공한 경우에만 실행을 시작합니다.
echo "foo" && sleep 10s & echo "bar"
foo, Invoke를 인쇄합니다 . 이는 대기할 프로세스가 포그라운드에 없기 때문에 sleep
백그라운드로 전송되어 즉시 실행됩니다 .echo