概要
シェルスクリプト中で別プロセスでコマンドを実行して、その終了を待ち合わせてから先に進むみたいな並列実行を実現してみます。
スクリプト
こんなかんじ。
waitコマンドは指定したプロセスIDを待ち合わせることができます。
それを利用します。
#!/bin/bash command1() { sleep 1 echo 'command1' date } command2() { sleep 2 echo 'command2' date } command3() { sleep 3 echo 'command3' date } command1 & pid1=${!} command2 & pid2=${!} command3 & pid3=${!} wait ${pid1} ${pid2} ${pid3} echo 'done'
実行してみる
実行するとこんなかんじ。
同時に動いていそうですね。
$ ./wait.sh command1 Sun Mar 8 09:00:29 UTC 2020 command2 Sun Mar 8 09:00:30 UTC 2020 command3 Sun Mar 8 09:00:31 UTC 2020 done
おわりに
つかっていきたいですね。
覚えて便利 いますぐ使える!シェルスクリプトシンプルレシピ54
- 作者:松浦智之
- 発売日: 2011/08/10
- メディア: 単行本