É uma diferença de shell filho pai-v.
Quando você executa test.sh
, um novo shell é iniciado para executá-lo; a variável é exportada dentro desse shell. Isso significa que o novo shell está ciente disso e de seus próprios filhos. O shell pai, aquele com o qual você iniciou test.sh
, não é afetado (e não pode ser).
Para ver a variável no seu shell atual, você precisa criar o script:
. test.sh
(com um espaço entre .
e test.sh
). Isso executará test.sh
sem iniciar um novo shell.