0は成功を意味し、正の整数は失敗を意味します。255個のエラーコードがありますが、値126以上は、プログラムが起動できなかった(126または127)か、シグナルによって強制終了されたこと(129以上)を示すために予約されています。プロセスが終了したときのデフォルトの終了コードを参照してください?およびbash関数/スクリプトで使用できる戻り値/終了値は何ですか?詳細については。
シェルスクリプトの終了ステータスは、スクリプトが実行した最後のコマンドの終了ステータスです。例えば
#!/bin/sh
somecommand
の終了ステータスを返しますがsomecommand
、
#!/bin/sh
somecommand
exit 0
返されたものsomecommand
に関係なく0を返します。この2番目のスクリプトも記述できます
#!/bin/sh
somecommand
true
置くexit 0
スクリプトの終わりにしても、必ずしもそれはこれが唯一のスクリプトの最後に達した場合には0を返します0を返すことはありません。たとえば、次のスクリプトは常に3を返します。
#!/bin/sh
exit 3
exit 0
次のスクリプトは、構文エラーに関するメッセージの表示に加えて、常にエラーコードも返します。
#!/bin/sh
}
exit 0
次のスクリプトは、最初の引数に応じて1または0を返します。
#!/bin/sh
if [ "$1" = "foo" ]; then
exit 1
fi
exit 0
次のスクリプトは、失敗した場合にスクリプトを終了させるsomecommand
ため、ステータスを返します。set -e
somecommand
#!/bin/sh
set -e
somecommand
exit 0
exit 0
内で何が起こっても、終了コード0で終了します。