linux - 采购 .cshrc 后重复的环境路径

标签 linux bash path environment-variables csh

在我的.cshrc中,LD_LIBRARY_PATH原来是这样的:

setenv LD_LIBRARY_PATH path_one:$LD_LIBRARY_PATH

我编辑 .cshrc 以将 path_one 替换为 path_two。我的文件现在看起来像这样:

setenv LD_LIBRARY_PATH path_two:$LD_LIBRARY_PATH

但是在重新加载文件 (source ~/.cshrc) 之后,我在 LD_LIBRARY_PATH 中得到了 path_onepath_two:

% echo $LD_LIBRARY_PATH
path_two:path_one

我不想在路径中包含 path_one。谁能告诉我无需注销/重新登录即可更新 .cshrc 文件的有效方法?

最佳答案

当您获取文件时,该分配行正在运行。它将该静态值添加到 $LD_LIBRARY_PATH 变量的当前值之前。

连续三次获取该文件,您将三次将该路径添加到前面。

没有可以恢复到的“默认”值(除非您自己保存一个并小心使用)。简而言之,您可以注销并重新登录,或者手动将当前值编辑为您想要的值(通过手动使用正在运行的 shell echo "$LD_LIBRARY_PATH"中的 setenv 以获取当前值并从中复制和粘贴等)。

也就是说,在 $LD_LIBRARY_PATH 中添加一个不存在的额外路径并没有任何真正的危害。它只需要在应用程序启动期间进行一次打开尝试(但这应该相当快)。

如果该路径确实存在并且包含您不想使用的库,那当然是另一回事了。

关于linux - 采购 .cshrc 后重复的环境路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27384579/

相关文章:

更改用户 ID 以分配附加功能

linux - 为什么在没有可视终端的情况下通过 SSH 执行命令会使用不同的 PATH 位置?

Python + Django + Virtualenv 导入 django.core 失败

java - java中XML解析器的绝对路径

linux - 如何创建连接数据库的用户

bash - SED 转义特殊字符

linux - 长时间后如何通过 bash 脚本 SIGINT 多个后台程序?

bash - bash 前向进程替换背后发生了什么?

c# - 从完整路径获取相对路径

c - 有没有办法让我的二进制文件对 Linux 中的某些全局热键使用react?