【问题标题】:Can I change $PATH from a machine where I am not root我可以从我不是 root 的机器上更改 $PATH
【发布时间】:2017-03-03 18:07:29
【问题描述】:

我有一台不是 root 的 Red Hat Linux 机器。

在我的主文件夹中,我将此添加到我的.bash_profile.bashrc

export PATH=/path/to/my/directory:$PATH

然后,我跑了./.bash_profile./.bashrc

但是,$PATH 没有更新。

知道为什么会这样吗?

【问题讨论】:

  • 顺便说一句,希望您将 目录 而不是文件添加到 PATH;添加文件名不会有任何效果。顺便说一句,没有必要在那里显式使用export - PATH 变量已经在环境中,因此无需任何进一步操作即可导出对其的更新。
  • 那是一个目录。我更新了问题。
  • 顺便说一句,这可以说是stackoverflow.com/questions/17852111/…的重复

标签: linux bash unix


【解决方案1】:

当您运行这些文件时 - 就像您通常执行任何脚本时一样 - 它们在单独的 shell 中执行,并且对该 shell 状态(工作目录、变量等)的更改是当该外壳退出时丢失。如果目标是更改您正在操作的交互式 shell 的状态,您需要改为 source 它们。

语法如下:

source .bashrc  # on extended shells such as bash only
. .bashrc       # or on any POSIX-compliant shell

空间很关键; ./.bashrc 将尝试将 .bashrc 作为可执行文件运行,并使用它自己的解释器,而 . .bashrc 使用 . 命令记录在 http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_18 中以在当前解释器中执行文件的内容。

【讨论】:

    【解决方案2】:

    您需要获取 .bash_profile 以获取当前 shell 中的更改。

    【讨论】:

    • 重复的,不是吗?重叠预先存在的答案很好,但您应该尝试添加其他地方未涵盖的内容。
    • 当我开始撰写答案时,您的答案不可见。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    相关资源
    最近更新 更多