Esiste un comando Unix standard che fa qualcosa di simile al mio esempio di seguito
$ <cmd here> 56
$ echo Return code was $?
Return code was 56
$
<cmd here>dovrebbe essere qualcosa che può essere eseguito fork e lascia 56 come codice di uscita quando il processo termina. I builtin exite returnshell non sono adatti a quello che sto cercando perché influenzano la shell invocante stessa uscendo da essa. <some cmd>dovrebbe essere qualcosa che posso eseguire in contesti non shell - ad esempio, invocando da uno script Python con subprocess.
Ad esempio, /usr/bin/falseesce sempre immediatamente con il codice di ritorno 1, ma mi piacerebbe controllare esattamente cos'è quel codice di ritorno. Ho potuto ottenere gli stessi risultati scrivendo il mio script wrapper
$ 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
ma spero che esista un comando Unix standard che possa farlo per me.
(exit 56)?
truee falsebuilt-in, se avete bisogno di tornare 0 o 1.
exitè l'unico a cui riesco a pensare, ma tende a finire il tuo guscio.bash -c 'exit 56'obash -c "exit $1"potrebbe funzionare per te.