In der Bash-Dokumentation steht nichts, 128
was den erforderlichen ungültigen Beendigungscode angibt.
Bash selbst gibt den Exit-Status des zuletzt ausgeführten Befehls zurück, sofern kein Syntaxfehler auftritt. In diesem Fall wird er mit einem Wert ungleich Null beendet.
Der letzte Befehl ist der bash builtin exit
(von der Manpage)
exit [n]
Bewirkt, dass die Shell mit dem Status n beendet wird. Wenn n nicht angegeben wird, ist der Beendigungsstatus der letzte ausgeführte Befehl.
Geprüfte Spezifikation für WEXITSTATUS.
WEXITSTATUS (stat_val)
Wenn der Wert von WIFEXITED (stat_val) nicht Null ist, wird dieses Makro mit den niedrigwertigen 8 Bits des Statusarguments ausgewertet, das der untergeordnete Prozess an _exit () oder exit () übergeben hat, oder den Wert, den der untergeordnete Prozess von main zurückgegeben hat ().
So Ausgang ist mit einem 8 - Bit - Integer beschränkt (0 - 255), so -1
wäre 255
. Exit versteht nur ein Integer-Argument und keine Float-Werte. Daher wird wahrscheinlich ein Standardwert ausgegeben -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