Статус завершения подпроцессов bash

Статус завершения подпроцессов bash

Я обнаружил это опытным путем:

# someCommand; echo $?
1
# bash -c someCommand; echo $?
0

Я ожидаю, что это bash -c someCommandвернет код выхода someCommand, а не всегда 0.

Это ошибка или особенность дизайна? Как мне легко получить исходный статус выхода?

решение1

Это происходит потому, что вы получаете статус завершения команды bash, а не someCommand.

bashвыполняется someCommandи затем завершается. Статус выхода someCommandтеряется после выхода оболочки bash, которую вы вызвали.

Связанный контент