默认PATH变量在.bash_profile中为空

6

我记得在安装完OS X后,在终端中执行echo $PATH命令时,它会返回一个空行。现在随着时间的推移,安装了一些工具后,$PATH变量的值为/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin,尽管我的.bash_profile是空的。我想知道这个值是在哪里设置的?

2个回答

5

从macOS Catalina开始,Mac将默认使用zsh(Z shell)作为shell。这种类型的shell使用.zprofile而不是.bash_profile。要检查您是在bash还是zsh上,请运行echo $SHELL。如果结果是bin/zsh,那么您就在zsh上。在这种情况下,编辑您的~/.zprofile以设置环境变量。


4

合理的候选文件可能是 /etc/profile/etc/bashrc;还有 /etc/paths/etc/paths.d。您可能还需要查看 $HOME/.profile$HOME/.bashrc。Bash 还可能会查看其他一些地方。


/etc/paths.d是一个只读文件,其中包含上述变量,但不包括"/opt/X11/bin"。在OSX上,/.profile和/.bashrc不存在,只有~/.bash_profile。 - shaveenk
1
我为自己创建了 ~/.profile~/.bashrc 文件;这是我的特权,也可以是你的。/etc/paths.d 是一个目录,其中包含一个名为 40-XQuartz 的文件,其中列出了 /opt/X11/bin/etc/paths 是一个文件,其中包含其他值,每行一个。 - Jonathan Leffler
在我的Mac上,/.bash_profile是存在的,并且默认情况下配置为查找和执行您可能创建的/.bashrc。 test -f ~/.bashrc && source ~/.bashrc - JESii
除了Jonathan Leffler的回答之外,/etc/paths.d文件夹应该包含特定应用程序相关的文本文件,其内容在其中具有相关路径。当生成$PATH变量时,这些特定的应用程序路径文件会添加到/etc/paths中所包含的内容中。Jonathan的系统在/etc/paths.d文件夹中有一个40-XQuartz路径文件,并且在生成$PATH时,按数字字母顺序读取此文件夹中的文件,因此名为30-SpecificApplicationName的文件将出现在40-XQuartz路径文件之前,其中包含一系列路径。 - Mike Kormendy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接