Tidak ada apapun di dalam Dokumentasi Bash kata itu 128
adalah kode keluar yang tidak valid yang diperlukan.
Bash sendiri mengembalikan status keluar dari perintah terakhir yang dijalankan, kecuali kesalahan sintaksis terjadi, dalam hal ini keluar dengan nilai bukan nol.
Perintah terakhir adalah bash builtin exit
(dari halaman manual)
keluar [n]
Menyebabkan shell keluar dengan status n. Jika n dihilangkan, status keluar adalah dari perintah terakhir yang dijalankan.
Diperiksa spesifikasi untuk WEXITSTATUS.
WEXITSTATUS (stat_val)
Jika nilai WIFEXITED (stat_val) adalah nol, makro ini mengevaluasi ke pesanan rendah 8 bit argumen status bahwa proses anak dilewatkan ke _exit () atau keluar (), atau nilai proses anak dikembalikan dari main ().
Jadi exit dibatasi untuk integer 8 bit (0 - 255), jadi -1
akan menjadi 255
. Keluar hanya memahami argumen bilangan bulat dan tidak mengapung, sehingga kemungkinan menendang default -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