Configurando variáveis ​​de ambiente com arquivo .sh

Configurando variáveis ​​de ambiente com arquivo .sh

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. É necessário executar manualmente cada linha para exportá-las. Por favor ajude

Responder1

Você precisa source( .) do 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 (sub)shell sair, não afetando o shell pai.

Ao fazer sourceisso, os parâmetros estarão disponíveis na sessão de chamada. E também nos processos filhos conforme você exportos executa.


Observe que o shell do sistema padrão ( sh) para Ubuntu é dash, não bashe gnome-terminalgera bashcomo shell interativo. Durante a execução, certifique-se de que o shebang esteja correto e desejado. Além disso, enquanto source-ing, não há necessidade de shebang, você pode abandoná-lo.

informação relacionada