[$? -ne'0'の意味]。 (シェルスクリプト)

[$? -ne'0'の意味]。 (シェルスクリプト)

次のコマンドが何を意味するのか教えてくれる人はいますか?私はシェルスクリプトを読み、それが何をしているのかを調べています。ただし、スクリプトの最後に次のコマンドが表示されます。これが何を意味するのかわかりません。

if [ $? -ne '0' ]; then 
  exit 1
fi 

exit 0

答え1

$?シェルが待機した最後のコマンドの終了状態(文字列ですが整数で表されます)。つまり、マーカーを使用して背景に入れません&

伝統的に、ゼロ終了状態は「成功」を意味し、これはプログラムによって異なります。catほぼすべてのケースでゼロ状態で終了し、grep一致する項目が見つかった場合はゼロ状態で終了します。

したがって、スクリプトが最後に実行されたコマンドに関係なく、スクリプトは終了ステータスを確認します。状態が 0 でない場合、スクリプトは状態 1 で終了します。それ以外の場合、存在状態は 0 です。

編集の観点から見ると、このコードは実際には必要ありません。スクリプトを実行するシェルは、最後に呼び出されたコマンドの終了状態で終了します。他のシャットダウン状態は時々異なることを意味するため、1シャットダウン状態は重要な場合がありますが、通常は成功の場合は0、失敗の場合はゼロ以外のものが必要です。これはstatusで終了するコマンドで発生します$?

関連情報