Странное дублирование переменных, когда включая в bashrc файл

посмотрите обновление ниже

Мой bashrc имеет строку . ./bash_path_vars, где bash_path_vars содержит:

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

Но то, что я вхожу в новый терминал:

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

(дублирование)

Если Вы помещаете тот оператор экспорта непосредственно внутри bashrc, нет никакого дублирования!

Я озадачен. Почему это происходит?

ОБНОВЛЕНИЕ: Я глуп, я имел . ./bash_path_vars два раза в двух различных местах. Конечно, это привело к дублированию... Благодаря всем, кто ответил на этот вопрос и жаль о том, что не был задан лучший вопрос!

0
задан 12 March 2017 в 08:34

2 ответа

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

Эта команда только устанавливает или перезаписывает LD_LIBRARY_PATH, а скорее берет существующую переменную и расширяется, это с:/usr/local/lib

Смотрит на .bash_profile и/etc/profile, установлена ли переменная также там. Вы могли также установить:

export LD_LIBRARY_PATH=:/usr/local/lib  

в bashrc.

1
ответ дан 3 November 2019 в 16:14

Ваш делают его неправильно. Обратите внимание на то, что $LD_LIBRARY_PATH уже переменная, объявил некоторых, где, поэтому когда Вы делаете:

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

Вы говорите, расширяетесь $LD_LIBRARY_PATH и добавляете /usr/local/lib, таким образом, Вы доберетесь что Ваше в настоящее время наблюдение:

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

Теперь изменяют Вашу запись в .bashrc файл к:

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

Теперь, когда Вы работаете: echo $LD_LIBRARY_PATH, необходимо видеть /usr/local/lib

Просто помещение: export LD_LIBRARY_PATH=/usr/local/lib даст Вам желаемый результат, но добавление второй строки (export PATH=$LD_LIBRARY_PATH:$PATH) помещает тот переменная в Вашем системный путь .

1
ответ дан 3 November 2019 в 16:14

Другие вопросы по тегам:

Похожие вопросы: