Чи є стандартна команда 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"
може працювати для вас.