2017-12-28 11 views
2

쉘 스크립트가 3 개인 경우 처음 두 스크립트를 병렬로 실행 한 다음 두 스크립트를 모두 마친 후 세 번째 스크립트를 실행해야합니다. 어떻게해야합니까? 내가 아는 전부는 백그라운드에서 처음 두 스크립트를 실행하는 것입니다.병렬로 두 개의 쉘 스크립트를 실행 한 다음 두 개의 쉘 스크립트를 모두 실행 한 후 다른 스크립트를 실행하십시오.

sh script1.sh & 
sh script2.sh & 
sh script3.sh & 

나는 세 번째 스크립트가 여전히이 스크립트로 계속 될 것이라고 생각합니다.

어떻게 세 번째 스크립트가 '대기'할까요?

답변

2

내장형 wait을 사용하십시오. 그것은해야한다 :

sh script1.sh & 
sh script2.sh & 
wait 
sh script3.sh 
+0

고맙습니다! 이거 할거야! 나는 wait 함수가 pid를 가져야한다고 생각했다. – aftermath

0

GNU parallel 병렬로 명령을 실행하는 도구입니다 :

parallel -j2 ::: './script1.sh' './script1.sh' && ./script3.sh 

script1이script2 병렬로 실행됩니다 두 후 완료 script3 것 처형되다.

Parallel's tutorial이 필요한 경우 더 많은 고급 사용자 설정을 보여줍니다.

+1

'script1'과'script2'의 종료 상태에 따라'script3'가 실행되지 않을 수도 있습니다. 나는'&& ./script3.sh'를'; ./script3.sh'. – hek2mgl