18

a.py と b.py の 2 つの python スクリプトがあり、a.py をロードし、a.py が完了するまで b.py を実行しない bash スクリプトを作成したいと考えています。単純に

#!/usr/bin/env bash
python a.py
python b.py

しかし、これは素朴で、 a.py が完了しているかどうかを確認するためのチェックです...どうすればよいですか?

4

2 に答える 2

42

デフォルトでは、これはすでに次々に実行されます。


python a.pyを実行するための必須条件として正常に完了したことを確認するには、次のpython b.pyようにします。

#!/usr/bin/env bash
python a.py && python b.py

逆に、実行を試み、正常に終了しなかったpython a.py場合にのみ「python b.py」を実行します。python a.py

#!/usr/bin/env bash
python a.py || python b.py

バックグラウンド プロセスと同時に実行するには:

#!/usr/bin/env bash
python a.py &
python b.py &

(コメントへの応答) - これを複数のコマンドに続けて連鎖させることができます。次に例を示します。

python a.py && python b.py && python c.py && python d.py 
于 2012-12-03T22:03:05.773 に答える
0
prompt_err() {

echo -e "\E[31m[ERROR]\E[m"

}

prompt_ok() {

echo -e "\E[32m[OK]\E[m"

}

status() {

if [ $1 -eq 0 ]; then

prompt_ok

else prompt_err

exit -1

fi

}

a.py

status

b.py

上記のチェックコードを使用できます。

「a.py」が完了した場合のみ「b.py」を処理します。それ以外の場合は「エラー」で終了します。

于 2012-12-03T22:55:04.890 に答える