쉘 스크립트에서 두 개의 명령을 동시에 실행할 수 있습니까?

쉘 스크립트에서 두 개의 명령을 동시에 실행할 수 있습니까?

명령줄을 사용하여 &백그라운드에서 명령을 실행할 수 있다는 것을 알고 있습니다. 하지만 스크립트에서 이 작업을 수행할 수 있는지 궁금합니다.

다음과 같은 스크립트가 있습니다.

date_stamp=$(date +"%Y-%m-%d" --date='yesterday')
shopt -s extglob

cd /my/working/directory/

sh ./stay/get_it_ios.sh
sh ./stay/get_it_mix.sh

cd stay
zip  ../stay_$date_stamp.zip  ./*201*

rm ./stay/!(*py|*sh)

좀 더 정확한 데이터를 얻기 위해 모두 sh ./stay/get_it_ios.sh와 함께 달리고 싶습니다 . sh ./stay/get_it_mix.sh쉘 스크립트 범위 내에서 이 작업을 수행할 수 있습니까?

답변1

예. 동시에 두 가지 작업을 수행하고 두 작업이 완료될 때까지 기다리려면 다음을 수행할 수 있습니다.

sh ./stay/get_it_ios.sh &  PIDIOS=$!
sh ./stay/get_it_mix.sh &  PIDMIX=$!
wait $PIDIOS
wait $PIDMIX

그러면 스크립트는 두 스크립트를 병렬로 실행하고 계속하기 전에 두 스크립트가 모두 완료될 때까지 기다립니다.

관련 정보