Como exportar uma variável de ambiente do arquivo .sh no zsh? [duplicado]

2

Eu tenho o seguinte script de shell

TEST=/foopath
export TEST

Está em um arquivo chamado test.sh e no qual corri chmod +x test.sh

Quando executo ./test.sh , espero poder executar echo $TEST e ver a saída /foopath , mas não vejo nada.

Quais alterações são necessárias para fazer o script acima exportar a variável $TEST quando eu executar ./test.sh . Isso é uma diferença bash vs. zsh?

    
por ams 27.11.2016 / 18:48

1 resposta

2

É 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.

    
por 27.11.2016 / 19:06