私はPerforceサーバをクラッシュさせたときに再起動するために以下のbashスクリプトを実行していますが、私がしたいのは、bashスクリプトがPythonスクリプトを実行して終了私のスラックチャンネルへのアプリケーションのコード。bashの値をPythonに渡す
python app.py 225
のようなものをPythonスクリプトで実行することができますが、それは動作しますが、$?
をpython app.py $?
のように渡します。
は(それが225を示している端末で)適切に終了コードを報告したが、Pythonスクリプトに渡されたときに$?
Pythonスクリプトの0として
#!/bin/bash
until ~/Desktop/shell/p4d; do
echo "Perforce Server crashed with exit code $?. Respawning.." >&2
sleep 1
python ~/Desktop/shell/app.py $?
done
スニペットが表示されます引数を取得します。
if __name__ == "__main__":
error = str(sys.argv[1])
print error
post_message(error)
どうすればよいですか?
終了コード '0' ... Bashは風変わりです;) – zwer
' $? 'は' p4d'ではなく 'sleep 1'の終了コードです。 untilループの中に変数として格納してくださいftw –
さて、ここでは何が起きているかについての[すばらしい答え](https://unix.stackexchange.com/a/99134)です。 – zwer