回答:
必要な無効な終了コードであると言うBashのドキュメントには何もありません128
。
Bash自体は、構文エラーが発生しない限り、最後に実行されたコマンドの終了ステータスを返します。その場合、ゼロ以外の値で終了します。
最後のコマンドは組み込みのbashですexit
(manページから)
終了[n]
シェルをステータスnで終了させます。nを省略すると、終了ステータスは最後に実行されたコマンドの終了ステータスになります。
チェック仕様を WEXITSTATUSため。
WEXITSTATUS(stat_val)
WIFEXITED(stat_val)の値がゼロ以外の場合、このマクロは、子プロセスが_exit()またはexit()に渡したステータス引数の下位8ビット、または子プロセスがmainから返した値を評価します。 ()。
そう出口は、8ビットの整数(0から255)に制限され、そう-1
であろう255
。Exitは整数の引数のみを理解し、フロートは理解しないため、デフォルトを開始する可能性があります-1
。
bash$ echo $BASH_VERSION
4.1.10(4)-release
bash$ exit foo
exit
bash: exit: foo: numeric argument required
$ echo $?
255
bash$ exit 2
exit
$ echo $?
2
bash$ exit -2
exit
$ echo $?
254
これはシェルバリアントに固有です。このhttp://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_08 またはhttp://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#exitでは、 128は特別な終了コードです。
以下のためのexit 3.45
1を返しtcshのkshのとzshのリターン3、(出口実際にはしません)の私のバージョン、および灰は2を返します(が、また出実際にはしません)。