Referindo-se a uma variável de ambiente existente em outra

1

Digamos que eu tenha uma variável de ambiente chamada JAVA_HOME , definida no arquivo /etc/environment . Eu preciso acrescentar um novo valor JAVA_HOME/bin na variável PATH . Considere o seguinte,

JAVA_HOME=/usr/apps/jdk1.8.10_1
PATH=/bin/something/:/bin/bash/something:/usr/apps/jdk1.8.10_1/bin

Agora, se você analisar, se eu pudesse substituir /usr/apps/jdk1.8.10_1/bin por algo como abaixo, seria mais conveniente.

PATH=/bin/something/:/bin/bash/something:JAVA_HOME/bin

Como eu poderia fazer isso? É %JAVA_HOME%/bin ?

    
por Romeo Sierra 16.09.2016 / 14:51

2 respostas

1

Você não pode fazer isso em /etc/environment . Não é um arquivo de script e a expansão de variáveis não funciona lá.

Para modificar PATH em todo o sistema, um arquivo com uma extensão .sh na pasta /etc/profile.d é um método melhor. Pode ser nomeado myvars.sh ou praticamente qualquer coisa, desde que tenha a extensão .sh . No seu caso, pode ser algo assim:

export JAVA_HOME=/usr/apps/jdk1.8.10_1
PATH="$PATH:$JAVA_HOME/bin"

Dessa forma, você mantém a definição PATH padrão em /etc/environment e a modifica em seu próprio arquivo.

Consulte a página EnvironmentVariables para referência.

    
por Gunnar Hjalmarsson 16.09.2016 / 15:07
2

A referência a uma variável é feita adicionando um $ em bash . Verifique esta entrada:

$ echo $JAVA_HOME
/usr/apps/jdk1.8.10_1

O interpretador de comandos substitui o $variable pelo seu valor.

Seu comando seria:

PATH=/bin/something/:/bin/bash/something:$JAVA_HOME/bin

Não use espaços, ou seu comando não funcionará.

Nota: O %symbols% em torno do nome de uma variável é o estilo da Microsoft.

    
por Jos 16.09.2016 / 14:56