Duplicação estranha de variáveis ao incluir no arquivo bashrc

0

pls veja a atualização abaixo

Meu bashrc tem a linha . ./bash_path_vars , onde bash_path_vars contém:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

Mas o que recebo no novo terminal é:

> echo $LD_LIBRARY_PATH
:/usr/local/lib:/usr/local/lib

(duplicação)

Se você colocar essa declaração de exportação diretamente dentro de bashrc , não haverá duplicação!

Estou intrigado. Por que isso acontece?

UPDATE : sou burro, tive . ./bash_path_vars duas vezes em dois lugares diferentes. Claro, isso resultou em duplicação ... Obrigado a todos que responderam a esta pergunta e desculpe por não fazer uma pergunta melhor!

    
por Ayrat 07.03.2017 / 11:16

2 respostas

1

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

Este comando não apenas define ou sobrescreve LD_LIBRARY_PATH, mas toma a variável existente e a expande com: / usr / local / lib

Dê uma olhada em .bash_profile e / etc / profile, se a variável também estiver definida lá. Você também pode definir:

export LD_LIBRARY_PATH=:/usr/local/lib  

em bashrc.

    
por Torrintino 07.03.2017 / 11:21
1

Você está fazendo isso errado. Por favor, note que $LD_LIBRARY_PATH já é uma variável declarada em algum lugar, então quando você faz:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

Você está dizendo, expanda $LD_LIBRARY_PATH e adicione /usr/local/lib para obter o que está vendo no momento:

> echo $LD_LIBRARY_PATH
:/usr/local/lib:/usr/local/lib

Agora altere sua entrada no arquivo .bashrc para:

export LD_LIBRARY_PATH=/usr/local/lib
export PATH=$LD_LIBRARY_PATH:$PATH

Agora, quando você executar: echo $LD_LIBRARY_PATH , verá /usr/local/lib

Apenas colocando: export LD_LIBRARY_PATH=/usr/local/lib dará o resultado desejado, mas adicionando a segunda linha ( export PATH=$LD_LIBRARY_PATH:$PATH ) coloca essa variável em seu caminho do sistema .

    
por George Udosen 07.03.2017 / 12:07