bash 加载文件以设置 PATH 变量的顺序是什么

bash 加载文件以设置 PATH 变量的顺序是什么

我想了解在 Linux/Mac 中设置 PATH 变量的方式。所有文件都加载了什么以及按什么顺序设置 BASH 的 PATH 变量。

答案1

PATH 可能有点棘手,因为您的配置文件可以执行类似PATH="~/bin:${PATH}"或的操作PATH="${PATH}:~/bin",并且两者都完全可以接受并且具有有效的情境用途。我相信您真正想问的是 shell 在启动时读取哪些配置文件 - 确定如何分配 PATH 是按顺序浏览配置文件并查看它们的作用的功能。

在 OS X 上,按以下顺序读取以下配置文件:

对于交互式登录 shell:
* * 首先按以下/etc/profile
顺序匹配:~/.bash_profile,, * 在 shell 终止时:~/.bash_login~/.profile
~/.bash_logout

对于交互式非登录 shell:
* /private/etc/bashrc(通常/etc/bash.bashrc在 Linux 中)
*~/.bashrc

答案2

详细说明一下 devnall 对交互式 shell 的解释:WRT OS X 10.10 (Yosemite) 以及更早的版本,如果该文件可用且可执行, /etc/profile则会调用。将读取每个文件并附加内容(每个内容应为一行),然后导出整个结果。这是一种简洁明了的方式来表明设置特定路径的原因:/usr/libexec/path_helperpath_helper/etc/paths.d/$PATH

$ cat /etc/paths.d/40-XQuartz 
    /opt/X11/bin
$ cat /etc/paths.d/MacGPG2 
    /usr/local/MacGPG2/bin

然后,如果有/etc/bashrc,则会调用。

然后,将运行主目录中的 .bash_profile、.bash_login 或 .profile 之一。(当然,~/.bash_logout退出时也会运行。)

相关内容