Давайте представим, у меня есть Баш скрипт, где я называю это:Можно ли получить код выхода из подоболочки?
bash -c "some_command"
do something with code of some_command here
Можно ли получить код some_command
? Я не выполняю some_command
непосредственно в оболочке, запускающей скрипт, потому что я не хочу изменять его среду.
Я не уверен в ваших причинах для выполнения косвенно - эта подоболочка наследует среду от вызывающего скрипта. Просто попробуйте 'export FOO =" foo "; bash -c 'echo $ FOO'' (одинарные кавычки, поэтому он не расширяется до тех пор, пока не будет запущена подседка). – Cascabel
Он наследует среду, но не изменяет среду для текущей оболочки. Любые изменения, которые он внесет в env. после смерти он исчезнет. – Geo
Если вы хотите что-то запустить, не опуская родительскую оболочку, я бы использовал подселочку, http://tldp.org/LDP/abs/html/subshells.html – slm