GNU/Linux >> Linux の 問題 >  >> Linux

bash スクリプトのコマンドは並行して実行されますか、それとも次々に実行されますか?

このままでは、失敗したかどうかに関係なく、次々と実行されます。ある時点で終了するだけで、次のコマンドが実行されます。次から次へと。

前のコマンドがエラーで終了しなかった場合にのみコマンドを実行する場合は、次を使用します:

python do_this_first.py && python do_this_second.py && python do_this_last.py

ここでは、2 つのアンパサンドが論理的な AND のように機能します。 . 2 番目のスクリプトは、最初のスクリプトが正常に終了した場合にのみ実行され、3 番目のスクリプトは、2 番目のスクリプトがエラーなしで実行された場合にのみ実行されます。エラーが発生した場合、次のコマンドは実行されません。

ただし、それらを並行して実行したい場合は、これを実行できますが、他にも多くのオプションがあります:

python do_this_first.py &
python do_this_second.py &
python do_this_last.py &

bash はシーケンシャルです。最初に do_this_first.py ファイルが解釈されます。 python が実行を終えると、制御は再び bash に移されます。次に、bash は python do_this_second.py などを実行します。
したがって、本質的には、do_this_first が開始して終了し、do_this_second が開始して終了し、次に do_this_last が開始して終了します。


slhck が言ったように、以下は 1 つのオプションです。

python do_this_first.py && python do_this_second.py && python do_this_last.py

または、行がエラー コードを返した場合にすぐに終了する -e を設定することもできます。

#!/bin/bash

# Exit immediately if a command exits with a non-zero status.
set -e

python do_this_first.py 
python do_this_second.py
python do_this_last.py

私にとっては、この最後の方が読みやすいです。


Linux
  1. LinuxのbashコマンドをPERLスクリプトで実行する方法は?

  2. シェルスクリプトの並列実行

  3. bash スクリプトをデーモンとして実行する

  1. 限られた数のコマンドを並行して処理する Bash スクリプト

  2. bash.sh で cron を実行する権限が拒否されました

  3. N秒ごとにbashスクリプトを繰り返し実行するには?

  1. シェルからPythonスクリプトを実行する方法

  2. ログイン後に bash スクリプトを実行する

  3. bashスクリプトでpythonスクリプトを強制終了する方法