ブレースとサブシェル

ブレースとサブシェル

わかりません。ドキュメントから読み取ったように、{}サブシェルは作成されません。しかし、時には次のような場合もあるようです。

  $ unset T; echo "T_bfr=$T"; echo $$; { echo $$; export T=1; }; echo "T_afr=$T"
T_bfr=
4874
4874
T_afr=1

 $ unset T; echo "T_bfr=$T"; echo $$; { echo $$; export T=1 ; }|cat; echo "T_afr=$T"
T_bfr=
4874
4874
T_afr=

違いは何ですか? 2番目のケースでTが欠けているのはなぜですか?

ベストアンサー1

2番目のケースは、パイプがT_aft=$T設定されていないサブシェルで実行されるため、異なります。

おすすめ記事