を実行しています事。 単純化Linuxのbashスクリプト私は2つのPythonスクリプトはa.pyと をb.py持っていると私はa.pyロードしa.pyが、それはだやって完了するまでb.py実行されませんbashスクリプトを書きたい複数のpython
#!/usr/bin/env bash
python a.py
python b.py
が、これはナイーブで、a.pyが行われているかどうかを確認するためのチェック...私はそれをどのように行うのですか?デフォルトで
を実行しています事。 単純化Linuxのbashスクリプト私は2つのPythonスクリプトはa.pyと をb.py持っていると私はa.pyロードしa.pyが、それはだやって完了するまでb.py実行されませんbashスクリプトを書きたい複数のpython
#!/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
を実行し、ONLY「の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
これは2つ以上の場合がありますか?私もc.py、 'code' python a.py && python b.py && python c.py' code'、あるいはc.pyの別の行を別にしなければならないのでしょうか?最初の 'code' python a.py && python b.py'code'' 'code'python b.py && python c.py'code' – StudentOfScience
@StudentOfScienceあなたは=できます)更新された回答が表示されます –
&&を使用するとエラーが発生します./bash.sh:47行目:b.py:コマンドが見つかりませんでしたが、もしpython b.py fineを持っていればb.pyを実行します:( – StudentOfScience
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'が処理され、それ以外の場合は 'エラー'が表示されて終了します。
これも動作し、私はThxを試しました! – StudentOfScience
大歓迎!さらに詳しい情報はhttp://gettechgo.wordpress.com/2012/12/05/exit-status-shell-scripts/をご覧ください。 –
@MansabUppalあなたは自分のウェブサイトにリンクするたびに必ず開示する必要があります。 –
これは自然な動作で、同期実行です。それ以外の場合(バックグラウンドでaを実行してすぐにbを開始するには)、アンパサンド&をコマンドに追加する必要があります。 'python a.py&'。 –