chaves e subcaixas

1

Eu não consigo descobrir. Como eu li no documentaion, {} não cria um subshell. No entanto, parece que às vezes acontece:

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

Qual é a diferença? Por que T está faltando no segundo caso?

    
por rush 11.12.2012 / 12:01

1 resposta

2

O segundo caso é diferente porque o pipe é executado em um subshell, onde T_aft=$T não está definido.

    
por 11.12.2012 / 12:30

Tags