여러 명령을 동시에 실행하고 모든 명령이 완료되면 다른 명령을 실행하고 싶습니다. 이 명령 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을 반환).