我在设置 MacBook Pro 上的 PATH 时遇到了困难。
我关注了关联修改我的路径变量。
每次我启动一个新终端时,我都会得到一个指向的 PATH
/Applications/eclipse/apache-maven-3.0.5/bin
尽管.bash_profile
如下
EXPORT PATH=/usr/bin:$PATH
export PATH=/usr/local/bin:$PATH
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
并/etc/paths
有以下内容
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/Applications/eclipse/apache-maven-3.0.5/bin
我确实尝试过看看这个关联也一样,但也没多大帮助
答案1
看起来你的shell是sh。OS X 的 /bin/sh 是 bash 的一个版本主要区别在于 POSIX 模式默认启用。它也不会读取登录 shell 的 ~/.bash_profile。来自man bash
:
如果使用名称 sh 调用 bash,它会尝试尽可能地模仿 sh 历史版本的启动行为,同时遵循 POSIX 标准。当作为交互式登录 shell 或使用 --login 选项的非交互式 shell 调用时,它首先尝试按顺序从 /etc/profile 和 ~/.profile 读取和执行命令。
因此,您可以使用 ~/.profile 而不是 ~/.bash_profile,但您可能只想将 shell 更改为普通 bash:
- 如果设置为其他内容,请将“启动”>“打开的 Shell”设置为“默认登录 Shell”
chsh -s /bin/bash
如果默认登录 shell 已更改,则运行
关于 David X 的回答中的评论线索的注释:
- 将 /bin/bash 符号链接到 /bin/sh 不会有帮助。/bin/bash 和 /bin/sh 二进制文件几乎相同,但行为取决于调用 bash 的名称。
- 终端和 iTerm 默认打开新 shell 作为登录 shell,例如 bash 读取 ~/.bash_profile 但不读取 ~/.bashrc。
- OS X 上的 /etc/passwd 中不包含普通用户帐户。
答案2
我确信 PATH 需要在 .bashrc 而不是 .*profile 中设置。
尝试将其放入您的 .bash_profile 中(替换以下export PATH
行):
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
在你的 .bashrc 中:
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
答案3
那里只有一个条目.....第三个条目覆盖了所有内容......
export PATH=.:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:$PATH