2013-01-21 14 views
5

をチェック私のpythonスクリプトは、Pythonスクリプトで何が起こるかに応じて、それを実行したシェルスクリプトにステータスを戻します。例えば、何かがPythonスクリプトで間違っていたら、コードに1を返してシェルに送り返します。シェルスクリプト内のPythonスクリプトを実行している私は、このコマンドを実行する私のシェルスクリプト内でのステータス

  • 私のシェルスクリプトでPythonの終了コードを読み込んでエラーを終了するにはどうすればよいですか?たとえば、0以外のステータスコードを入力して終了します。

  • +0

    if python script.py; then echo "Exit code of 0, success" else echo "Exit code of $?, failure" fi 

    終了コードを確認するには、明示的に、あなたはifステートメントに条件式を指定する必要があります。http:/ /stackoverflow.com/questions/90418/exit-shell-script-based-on-process-exit-code?rq=1 – acjay

    答えて

    13

    まず、Pythonスクリプトのsys.exitの引数として、目的の終了コードを渡すことができます。

    第2に、最後に終了したプロセスの終了コードはbashパラメータ$?にあります。しかし、あなたが明示的にチェックする必要はないかもしれない:第2位の場合

    python script.py 
    if [[ $? = 0 ]]; then 
        echo "success" 
    else 
        echo "failure: $?" 
    fi 
    
    +0

    コードを実行するにはpython script.pyという行の前に行が必要ですか? – Jimmy

    +0

    代わりに、あなたのコードもスクリプトを実行しますか? – Jimmy

    +0

    コマンドのリストは 'if'ステートメントで実行され、その終了コードは' if'のどのブランチが次に実行されるかを決定します。 – chepner

    関連する問題