私のプロジェクトには次のスニペットがあります。
local output="$(bash "${1##*/}")"
echo "$?"
ただし、これは常に0を印刷するため、local
削除すると変数が正しく機能local
します。これはサブシェルの終了コードを想定しています。$?
私の質問は:終了値をキャプチャしながら、この変数をローカル変数としてどのように保持できますか?
ベストアンサー1
代入する前にローカル変数を宣言してください。
thing() {
local output
output="$(bash "${1##*/}")"
echo "$?"
}
私の考えでは、追加の変数を設定するよりもこれがRET
読みやすくなります。これはYMMVですが、期待どおりに動作します。