シェル内の「exit 0」と「exit 1」の違い
シェルスクリプトでは、exit 0とexit 1はそれぞれコマンドやスクリプトの実行状態を表す、特別な終了コードです。この2つの終了コードは、以下のような違いがあります。
- exit0:コマンドやスクリプトが正常終了し、エラーが発生しなかったことを示します。通常、0は正常終了コードとみなされます。
- 1: コマンド、またはスクリプトの実行に問題があったこと、またはエラーが発生したことを示します。一般的に、ゼロ以外の終了コードは異常終了コードとみなされます。
コマンドやスクリプトの実行が終了すると終了コードが返り、これによってコマンドやスクリプトの実行が成功したかどうかを判定したり、終了コードによって処理を分岐することができます。通常、終了コードが0の場合は成功、0以外の終了コードの場合は失敗またはエラーを表します。
例えば、あるスクリプトでは、条件分岐を利用して、終了コードによって異なる処理を行うことができる。
#!/bin/bash
# 执行命令
ls
# 判断退出码
if [ $? -eq 0 ]; then
echo "命令执行成功"
else
echo "命令执行失败"
fi
上記スクリプト内の$?は直前のコマンドの終了ステータスを表します。 lsコマンドが成功だった(終了ステータスが0だった)場合は「コマンドが成功しました」と表示し、lsコマンドが失敗(終了ステータスが0でない)した場合は「コマンドが失敗しました」と表示されます。
exit 0 は正常終了、exit 1 は異常終了を示す。終了コードに応じて適切な処理や判断を行う。