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 source
isso, os parâmetros estarão disponíveis na sessão de chamada. E também nos processos filhos conforme você export
os executa.
Observe que o shell do sistema padrão ( sh
) para Ubuntu é dash
, não bash
e gnome-terminal
gera bash
como 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.