W moim projekcie mam następujący fragment kodu:
local output="$(bash "${1##*/}")"
echo "$?"
To zawsze wypisuje zero local
, ponieważ usunięcie local
powoduje jednak, że $?
zmienna zachowuje się poprawnie: co oznacza przyjęcie kodu wyjścia z podpowłoki.
Moje pytanie brzmi: jak mogę zachować tę zmienną lokalnie, jednocześnie rejestrując wartość wyjściową?
shellcheck
nie tylko złapie ten problem, ale zaproponuje rozwiązanie na unix.stackexchange.com/a/281749/24718 !