请参阅下面的更新
我的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
) 则多变的在你的系统路径。