次のコマンドが何を意味するのか教えてくれる人はいますか?私はシェルスクリプトを読み、それが何をしているのかを調べています。ただし、スクリプトの最後に次のコマンドが表示されます。これが何を意味するのかわかりません。
if [ $? -ne '0' ]; then
exit 1
fi
exit 0
答え1
$?
シェルが待機した最後のコマンドの終了状態(文字列ですが整数で表されます)。つまり、マーカーを使用して背景に入れません&
。
伝統的に、ゼロ終了状態は「成功」を意味し、これはプログラムによって異なります。cat
ほぼすべてのケースでゼロ状態で終了し、grep
一致する項目が見つかった場合はゼロ状態で終了します。
したがって、スクリプトが最後に実行されたコマンドに関係なく、スクリプトは終了ステータスを確認します。状態が 0 でない場合、スクリプトは状態 1 で終了します。それ以外の場合、存在状態は 0 です。
編集の観点から見ると、このコードは実際には必要ありません。スクリプトを実行するシェルは、最後に呼び出されたコマンドの終了状態で終了します。他のシャットダウン状態は時々異なることを意味するため、1シャットダウン状態は重要な場合がありますが、通常は成功の場合は0、失敗の場合はゼロ以外のものが必要です。これはstatusで終了するコマンドで発生します$?
。