Você não pode exportar o ambiente dos pais para nenhum filho, uma vez que a criança tenha sido bifurcada. As crianças são búfalos bifurcados que, ao serem recolhidos, recebem uma cópia do ambiente dos pais naquele momento. Daquele ponto em diante eles estão por conta própria.
No seu caso, você está definindo as variáveis antes de bifurcar, então você deve ver as variáveis que foram definidas em qualquer criança. No entanto, parece que você está correndo em um erro de digitação. Experimente echo $x
.
Exemplo
No shell pai:
$ x='This is a String'
$ export x
$ xterm &
[1] 28578
No xterm:
$ echo $x
This is a String
Variável sendo redefinida por arquivos de login?
Em alguns casos raros, você pode ter um set
ou unset
disperso, o que faria com que a variável de ambiente do pai não fosse transmitida corretamente para nenhum filho. Você pode verificar isso da seguinte maneira:
# login shell
$ bash -c -l 'echo $x'
This is a String
# interactive shell
$ bash -c -i 'echo $x'
This is a String
Você também pode usar a opção -x
do Bash para que a saída acima seja mais detalhada.
$ bash -x -c -i 'echo $x'