HOWTO · Bash
Bash で終了コードを確認する
この記事は、Bash のコマンドを記述しているとき、または Bash スクリプトを記述しているときに終了ステータスを取得するさまざまな方法に関する短いチュートリアルです。
このチュートリアルでは、Bash でステートメントの終了ステータスを取得および表示するためのいくつかの方法について説明します。最初に、単純な if ステートメントを使用して終了ステータスを取得する方法について説明し、その後、終了ステータスを取得するための代替方法と簡略表記について説明します。
Bash の終了コードを確認してください
終了ステータスは基本的に、コマンドが成功したかどうかを示す整数です。直感的ではありませんが、終了ステータス 0 は成功を示し、ゼロ以外の値は失敗/エラーを示します。
この直感的でないソリューションでは、さまざまなエラーコードでさまざまなエラーを表すことができます。たとえば、コマンドが見つからない場合は、127 の終了ステータスが返されます。
Bash で終了コードを確認する方法は、$? を使用することです。指図。終了ステータスを出力する場合は、次の方法で実行できます。
# your command here
testVal=$?
echo testVal
エラーを報告するためにゼロ以外の終了コードが使用されることはわかっています。一般的なエラーをチェックしたい場合は、問題のコマンドと、終了コードがエラー(ゼロ以外)であるかどうか、または終了コードが適切な実行を示しているかどうかをチェックする if ステートメントを使用して小さなスクリプトを作成できます。。
# your command here
testVal=$?
if [$testVal -ne 0]; then
echo "There was some error"
fi
exit $testVal
$? の test を使用して、簡略表記を行うことができます。指図。このコードの最小限の例は次のとおりです。
# your command here
test $? -eq 0 || echo "There was some error"
上記のステートメントをよりよく理解するために、それを拡張することができます。
# your command here
exitStat = $?
test $exitStat -eq 0 && echo "No error! Worked fine" || echo "There was some error";
exit $exitStat
上記のように、正常に実行された場合はエラーなし!正常に動作しましたというメッセージが表示され、失敗した場合はエラーメッセージが表示されます。
重要な注意事項と考えられる代替ソリューション
コマンドが正しく実行されているかどうかを確認するために終了コードを使用する場合は、はるかに簡単な代替手段があります。
# define your_command here
# your_command = enter a command here
if your_command; then
echo command returned true
else
echo command returned an error
fi
この場合、通常、最初の 2つのオプションを使用した場合と同じ出力が得られます。さらに、出口コードに関する特定の情報を取得したり、特定の出口コードを取得したりするには、手動で $? を実行する必要があります。