为什么我的路径现在没有更新?

为什么我的路径现在没有更新?

我最近安装了最新的 Qt SDK,并将其添加到我的 ~/.bash_profile 内的 PATH 中。

我没有看到变化。我可以,source ~/.bash_profile但是我的路径会长一倍,但我无法简单地打开一个新的 gnome 终端并更新路径。

为什么?

注意:Fedora 11 在默认的 gnome 桌面内运行 GNU bash,版本 4.0.16(1)-release。

.bash_profile路径配置:

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/opt/qtsdk-2009.03/qt/bin/:/usr/local/lib/

答案1

当您从桌面打开终端时,终端会继承其启动时的环境,包括该 PATH。根据 Bash 文档,当您打开终端时,会发生以下情况:

来自Bash 参考手册

当 Bash 作为交互式登录 shell 或使用 --login 选项作为非交互式 shell 调用时,它首先从文件 /etc/profile 中读取并执行命令(如果该文件存在)。读取该文件后,它会按顺序查找 ~/.bash_profile、~/.bash_login 和 ~/.profile,然后从第一个存在且可读的文件中读取并执行命令。启动 shell 时可以使用 --noprofile 选项来禁止此行为。

当登录 shell 退出时,Bash 会从文件 ~/.bash_logout 中读取并执行命令(如果存在)。

和...

当启动非登录 shell 的交互式 shell 时,如果 ~/.bashrc 文件存在,Bash 会从该文件读取并执行命令。可以使用 --norc 选项禁止此操作。--rcfile 文件选项将强制 Bash 从文件而不是 ~/.bashrc 读取并执行命令。

因此,通常你的 ~/.bash_profile 包含以下行

 if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

在任何特定于登录的初始化之后(或之前)。

因此,为了让您的 .bash_profile 执行,您需要登录到登录 shell,也许通过 ssh 进入本地主机,或者注销您的桌面环境并重新登录。

答案2

尝试将其放入你的~/.bashrc

当您登录时,~/.bash_profile将进行处理。当您打开新终端或启动新 shell 时,将不再进行处理,此时将~/.bashrc进行处理。您应该~/.bashrc在您的 中执行 source ~/.bash_profile

请参阅中的“调用”部分man bash

相关内容