Есть ли стандартная команда Unix, которая делает что-то похожее на мой пример ниже
$ <cmd here> 56
$ echo Return code was $?
Return code was 56
$
<cmd here>
должно быть чем-то, что может быть обработано ветвлением и оставляет 56 в качестве кода выхода при выходе из процесса. В exit
и return
оболочках встроенных функций непригодны для того, что я ищу , потому что они влияют на самом вызывающую оболочку при выходе из него. <some cmd>
должно быть что-то, что я могу выполнить в контекстах без оболочки - например, вызов из скрипта Python с помощью subprocess
.
Например, /usr/bin/false
всегда завершается немедленно с кодом возврата 1, но я бы хотел точно определить, что это за код возврата. Я мог бы достичь тех же результатов, написав свой собственный скрипт-обертку
$ 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
но я надеюсь, что существует стандартная команда Unix, которая может сделать это для меня.
(exit 56)
?
true
и false
встроенные модули , если вам нужно возвратить 0 или 1.
exit
это единственный, о котором я могу думать, но это имеет тенденцию заканчивать вашу оболочку.bash -c 'exit 56'
илиbash -c "exit $1"
может работать на вас.