コマンドラインで&
を使用して、コマンドをバックグラウンドで実行できることを知っています。しかし、スクリプトでそれを実行できるかどうか疑問に思っています。
次のようなスクリプトがあります。
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
を一緒に実行して、より正確なデータを取得したいと考えています。シェルスクリプトのスコープでこれを行うことは可能ですか?
はい、そうです。 2つのことを同時に行い、両方が完了するのを待つ場合は、次のようなことができます。
sh ./stay/get_it_ios.sh & PIDIOS=$!
sh ./stay/get_it_mix.sh & PIDMIX=$!
wait $PIDIOS
wait $PIDMIX
次に、スクリプトは両方のスクリプトを並行して実行し、続行する前に両方のスクリプトが完了するのを待ちます。