Ich habe empirisch Folgendes herausgefunden:
# someCommand; echo $?
1
# bash -c someCommand; echo $?
0
Ich erwarte, dass bash -c someCommand
der Beendigungsstatus zurückgegeben wird someCommand
, statt immer 0.
Ist das ein Fehler oder eine beabsichtigte Funktion? Wie kann ich einfach den ursprünglichen Beendigungsstatus abrufen?
Antwort1
Dies liegt daran, dass Sie den Beendigungsstatus des bash
Befehls erhalten, nicht von someCommand
.
bash
wird ausgeführt someCommand
und dann beendet. Der Beendigungsstatus someCommand
geht verloren, nachdem die von Ihnen aufgerufene Bash-Shell beendet wurde.