シェルスクリプトで2つのコマンドを同時に実行できますか?

シェルスクリプトで2つのコマンドを同時に実行できますか?

コマンドラインを使用して&バックグラウンドでコマンドを実行できることを知っています。しかし、スクリプトでこれを行うことができるかどうか疑問に思います。

次のスクリプトがあります。

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

はい。同時に 2 つのタスクを実行し、2 つのタスクが完了するのを待つには、次のようにします。

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

その後、スクリプトは両方のスクリプトを並列に実行し、続行する前に両方のスクリプトが完了するのを待ちます。

おすすめ記事