包含到 bashrc 文件中时,变量出现奇怪的重复

包含到 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在两个不同的地方都犯了两次错误。当然,这导致了重复......感谢每一个回答这个问题的人,很抱歉没有问一个更好的问题!

答案1

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 中。

答案2

你做错了。请注意,$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) 则多变的在你的系统路径

相关内容