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 exit
und return
Shell 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/false
immer 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)
?
true
und false
eingebauten, wenn Sie 0 oder 1 zurückgeben müssen.
exit
ist 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.