【问题标题】:Is there a way to set "another" PATH variable?有没有办法设置“另一个” PATH 变量?
【发布时间】:2020-03-24 18:52:06
【问题描述】:

我知道如果我有自定义路径 CUSTOM_PATH=/some/custom/path/,那么我只需执行 export PATH=$PATH:$CUSTOM_PATH 以便在系统范围内访问 /some/custom/path 中的可执行文件。

但是,由于一些复杂的原因,如果我可以定义$CUSTOM_PATH,而不是将其附加到$PATH,但仍会像附加到$PATH 一样搜索其内容,那就太好了。

这就是我所说的“另一个”PATH 变量的意思:像 $PATH 一样搜索的路径,但单独定义。有没有办法做到这一点?

【问题讨论】:

  • 没有,但复杂的原因是什么?也许,有不同的方法来解决您的问题
  • 如果您解释复杂的原因,我们可能会想出一个解决方案,可以是 PATH 的替代品,也可以是其他完全的解决方案。
  • 我有一个 conda 环境,在该环境中,激活后,我将向PATH 附加一些内容。停用后,我需要 PATH 恢复到激活前的状态。我尝试使用像 OLDPATH=PATH 这样的中间变量,但是 conda 在运行我的激活脚本之前会将内容添加到 PATH,因此稍后恢复 PATH=OLDPATH 仍然会保留 conda 添加的内容。

标签: linux unix path


【解决方案1】:

快速回答:没有。

如果这是可能的,那么它可能是这样的:

export CUSTOM_PATH=/usr/local/bin
export PATH='/usr/bin:/bin:$CUSTOM_PATH'

这会将文字字符串"$CUSTOM_PATH" 放入您的$PATH。然后,您可以更改$CUSTOM_PATH 的值,而无需触摸$PATH,并隐式更新系统的搜索路径。

但它不是那样工作的。相关的库函数(execlp 等)将$PATH 环境变量的值视为以冒号分隔的文字目录名称序列。它不会对这些名称进行任何类型的扩展。

您只需随时更新$PATH 即可更改系统搜索路径。 (您可以以任何您喜欢的方式维护$PATH 的值,包括合并其他环境变量的值。)

【讨论】:

    猜你喜欢
    • 2019-12-13
    • 1970-01-01
    • 2021-01-24
    • 2010-10-14
    • 1970-01-01
    • 2018-09-16
    • 2011-07-05
    • 1970-01-01
    • 2017-05-12
    相关资源
    最近更新 更多