Configurando variáveis de ambiente com o arquivo .sh [duplicado]

4

Eu criei o arquivo env.sh cujo conteúdo está abaixo

#!/bin/sh

export M2_HOME=/vagrant/tools/maven
export PATH=$PATH:$M2_HOME/bin
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_65
export ANT_HOME=/usr/local/apache-ant-1.9.7
export MAVEN_HOME=$M2_HOME

mas a execução deste arquivo sh não resulta na exportação de variáveis env. Tem que executar manualmente cada linha para obtê-los exportados. Por favor ajude

    
por Somasundaram Sekar 27.09.2016 / 06:25

1 resposta

10

Você precisa source ( . ) o arquivo, não executar:

. env.sh

Quando você executa o script, ele é executado em um subshell e todos os parâmetros exportados sairão do escopo assim que o shell (sub) sair, não afetando o shell pai.

Quando você source , os parâmetros estarão disponíveis na sessão de chamada. E também nos processos filhos, pois você está export -los.

Observe que o shell do sistema padrão ( sh ) para o Ubuntu é dash , não bash e gnome-terminal gera bash como o shell interativo. Durante a execução, verifique se a shebang está correta e a desejada. Além disso, enquanto source -ing, não há necessidade do shebang, você pode descartá-lo.

    
por 27.09.2016 / 06:26