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 が完了しているかどうかを確認するためのチェックです...どうすればよいですか?
デフォルトでは、これはすでに次々に実行されます。
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
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」を処理します。それ以外の場合は「エラー」で終了します。