Atualizando a variável de ambiente em um script de shell

2

Estou tentando atualizar o valor de uma variável de ambiente em um script de shell de terceiros. Meu sistema operacional é o Oracle Linux Server versão 6.4 (Red Hat Enterprise Linux Server versão 6.4 (Santiago).

Já tenho as variáveis de ambiente abaixo definidas em /etc/bashrc (para todos os usuários)

JAVA_HOME=/opt/java/jdk1.8.0_45
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin

export JAVA_HOME
export PATH

Eu gostaria de usar uma instalação diferente do jdk para um dos shell script. Por isso, adiciono as linhas abaixo a customscript.sh

JAVA_HOME=/opt/java/jdk1.7.0_79
export JAVA_HOME
echo "PATH variable is $PATH"
...                      #other script code

O customscript.sh ainda padroniza o valor da variável de ambiente antiga para a variável PATH . A saída do comando echo acima mostra que ainda está se referindo ao antigo valor da variável JAVA_HOME .

O que eu poderia estar perdendo?

    
por Andy Dufresne 08.07.2015 / 07:32

1 resposta

5

Seu /etc/bashrc define PATH interpretando o valor de $JAVA_HOME nesse momento. Ele não é reinterpretado se JAVA_HOME for alterado posteriormente. Você desejará adicionar uma linha ao script de shell de terceiros que diz: PATH=$JAVA_HOME:$PATH , de modo que oJAVA_HOME de 1,7% seja colocado no caminho antes do/etc/bashrc de JAVA_HOME de 1,8%.

    
por 08.07.2015 / 21:10