Existe-t-il une commande Unix standard qui fait quelque chose de similaire à mon exemple ci-dessous
$ <cmd here> 56
$ echo Return code was $?
Return code was 56
$
<cmd here>
devrait être quelque chose qui peut être exécuté par fork et laisse 56 comme code de sortie lorsque le processus se termine. Les commandes internes exit
et return
shell ne conviennent pas à ce que je recherche, car elles affectent le shell appelant lui-même en sortant. <some cmd>
devrait être quelque chose que je peux exécuter dans des contextes non shell - par exemple, invoquer à partir d'un script Python avec subprocess
.
Par exemple, /usr/bin/false
sort toujours immédiatement avec le code retour 1, mais j'aimerais contrôler exactement ce qu'est ce code retour. Je pourrais obtenir les mêmes résultats en écrivant mon propre 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
mais j'espère qu'il se trouve qu'il existe une commande Unix standard qui peut le faire pour moi.
(exit 56)
?
true
et false
intégré si vous devez retourner 0 ou 1.
exit
est le seul auquel je peux penser, mais il a tendance à mettre fin à votre coquille.bash -c 'exit 56'
oubash -c "exit $1"
pourrait travailler pour vous.