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 exitet returnshell 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/falsesort 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)?
trueet falseintégré si vous devez retourner 0 ou 1.
exitest 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.