Gibt es einen Standard-Unix-Befehl, der ähnlich wie im folgenden Beispiel funktioniert?
$ <cmd here> 56
$ echo Return code was $?
Return code was 56
$
<cmd here>sollte etwas sein, das vom Fork ausgeführt werden kann und beim Beenden des Prozesses 56 als Exit-Code belässt. Die exitund returnShell Builtins sind für das, wonach ich suche, ungeeignet, da sie die aufrufende Shell selbst beeinflussen, indem sie sie verlassen. <some cmd>sollte etwas sein, das ich in Nicht-Shell-Kontexten ausführen kann - z. B. über ein Python-Skript mit aufrufen subprocess.
ZB wird /usr/bin/falseimmer sofort mit dem Rückkehrcode 1 beendet, aber ich möchte genau steuern, was dieser Rückkehrcode ist. Ich könnte die gleichen Ergebnisse erzielen, indem ich mein eigenes Wrapper-Skript schreibe
$ cat my-wrapper-script.sh # i.e., <some cmd> = ./my-wrapper-script.sh
#!/usr/bin/bash
exit $1
$ ./my-wrapper-script.sh 56
$ echo $?
56
Ich hoffe jedoch, dass es einen Standard-Unix-Befehl gibt, der dies für mich erledigen kann.
(exit 56)?
trueund falseeingebauten, wenn Sie 0 oder 1 zurückgeben müssen.
exitist die einzige, an die ich denken kann, aber es neigt dazu, deine Muschel zu beenden.bash -c 'exit 56'oderbash -c "exit $1"könnte für Sie arbeiten.