브레이스 및 서브쉘

브레이스 및 서브쉘

나는 그것을 알아낼 수 없다. 문서에서 읽은 것처럼 {}하위 쉘이 생성되지 않습니다. 그러나 때로는 다음과 같은 경우도 있는 것 같습니다.

  $ 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=

차이점은 무엇입니까? 두 번째 경우에 T가 누락된 이유는 무엇입니까?

답변1

두 번째 경우는 파이프가 T_aft=$T설정되지 않은 하위 쉘에서 실행되기 때문에 다릅니다.

관련 정보