나는 그것을 알아낼 수 없다. 문서에서 읽은 것처럼 {}
하위 쉘이 생성되지 않습니다. 그러나 때로는 다음과 같은 경우도 있는 것 같습니다.
$ 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
설정되지 않은 하위 쉘에서 실행되기 때문에 다릅니다.