Wyobraźmy Mam skrypt bash, gdzie nazywają to:Czy można uzyskać kod zakończenia z podpowłoki?
bash -c "some_command"
do something with code of some_command here
Czy to możliwe, aby uzyskać kod some_command
? Nie wykonuję some_command
bezpośrednio w powłoce z uruchomionym skryptem, ponieważ nie chcę zmieniać jego środowiska.
Nie jestem pewien co do waszych powodów wykonywania pośrednio - że podpowłoki dziedziczą środowisko ze skryptu wywołującego. Po prostu wypróbuj 'export FOO =" foo "; bash -c 'echo $ FOO'' (pojedyncze cudzysłowy, więc nie jest rozwijane, dopóki nie uruchomi go podrzędna). – Cascabel
Dziedziczy środowisko, ale nie zmieni środowiska dla bieżącej powłoki. Wszelkie modyfikacje dokona w env. vary znikną, gdy umrze. – Geo
Jeśli chcesz uruchomić coś bez zbijania powłoki rodzica, użyłbym podpowłoki, http://tldp.org/LDP/abs/html/subshells.html – slm