Я обнаружил это опытным путем:
# someCommand; echo $?
1
# bash -c someCommand; echo $?
0
Я ожидаю, что это bash -c someCommand
вернет код выхода someCommand
, а не всегда 0.
Это ошибка или особенность дизайна? Как мне легко получить исходный статус выхода?
решение1
Это происходит потому, что вы получаете статус завершения команды bash
, а не someCommand
.
bash
выполняется someCommand
и затем завершается. Статус выхода someCommand
теряется после выхода оболочки bash, которую вы вызвали.