여러 명령을 실행하고 기다립니다.

여러 명령을 실행하고 기다립니다.

여러 명령을 동시에 실행하고 모든 명령이 완료되면 다른 명령을 실행하고 싶습니다. 이 명령 1과 명령 2와 같이 "명령 1과 2가 완료되었습니다" 명령 3과 명령 4

답변1

command1 &
command2 &

wait
echo 'command1 and command2 have finished'

command3 &
command4 &

wait
echo 'command3 and command4 have finished'

호출은 wait모든 백그라운드 작업 실행이 완료될 때까지 스크립트를 일시 중지합니다.

또는 ("참고용으로만") 명령 1과 2를 동시에 실행할지 여부에 따라(명령 3과 4와 동일):

( command1; command2 ) &
echo 'command1 and command2 are running'
wait
echo 'command1 and command2 have finished'

위의 경우 command1및 는 command2백그라운드에서 실행되지만 서로 동시에 실행되지는 않습니다.


행위

command1 & command2
wait

동등하다

command1 &
command2
wait

...이것은 작동하지만 command2백그라운드에서 실행되지 않으며 wait실행이 완료될 때까지 호출되지 않습니다.command2

답변2

내 질문에 대한 실제 답변은 다음과 같습니다. @raman-sailopal에게 특별히 감사드립니다.

command1 & command2
wait
echo "command 1 and 2 has finished"
command3 & command4

답변3

command1 & command2; echo "command1 & 2 complete" && command3 & command4; echo "command3 & 4 complete"

&동시에 명령 실행

;새 줄 시뮬레이션 - 완료 후 실행됩니다.

&&이전 작업이 성공한 경우 이전 작업이 완료된 후 실행됩니다(즉, 종료 코드를 반환하지 않지만 0을 반환).

관련 정보