在终端中执行'open .profile'时,我得到了以下内容:
export PATH=$PATH:/usr/local/git/bin
我现在在Mac上安装了node.js,它提示我:
确保 /usr/local/bin 在你的 $PATH 中。
我该如何将 /usr/local/bin
添加到 export PATH=$PATH:/usr/local/git/bin
中?
在终端中执行'open .profile'时,我得到了以下内容:
export PATH=$PATH:/usr/local/git/bin
我现在在Mac上安装了node.js,它提示我:
确保 /usr/local/bin 在你的 $PATH 中。
我该如何将 /usr/local/bin
添加到 export PATH=$PATH:/usr/local/git/bin
中?
PATH
变量保存由冒号分隔的目录列表,所以如果你想添加多个目录,只需在它们之间加上冒号:
export PATH=$PATH:/usr/local/git/bin:/usr/local/bin
这种语法适用于任何 Bourne 兼容的 shell(sh、ksh、bash、zsh 等)。但是 zsh 是最近版本 MacOS 的默认 shell,它还以另一种方式公开 PATH - 作为名为(小写)$path
的变量,它是一个数组而不是单个字符串。因此,你可以使用以下代码:
path+=(/usr/local/git/bin /usr/local/bin)
无论哪种情况,您可能希望在添加之前检查目录是否已经在PATH中。以下是使用通用语法的示例:
for dir in /usr/local/git/bin /usr/local/bin; do
case "$PATH" in
$dir:*|*:$dir:*|*:$dir) :;; # already there, do nothing
*) PATH=$PATH:$dir # otherwise add it
esac
done
以下是 zsh 特定版本的示例:
for dir in /usr/local/git/bin /usr/local/bin; do
if (( ${path[(i)$dir]} > $#path )); then
path+=($dir)
fi
done
但是在Zsh中,您还可以将数组变量标记为仅接受唯一条目:
typeset -TU PATH path
甚至可以使您自己的类似路径的变量在数组中反映出来:
typeset -TU PYTHONPATH pythonpath
/usr/libexec/path_helper
构建的,并从默认的/etc/profile
中调用。 请查看man path_helper
,然后将您的路径添加到/etc/paths.d
目录中的文件中。你会发现其他操作系统中几乎每个路径设置示例都包含$PATH
,因为它们似乎都不能保证自己是链中的第一个... - Synchro/etc/paths.d
中创建多个条目或单个条目,每行一个目录,但这并不能帮助您在提示符下完成操作,而且只是间接实现相同的事情。此外,即使该问题标记为“osx”,这种方法也具有在Linux和其他类UNIX系统上工作的优点。 - Mark Reednode --version
确认了它。 - marika.dabojabash
背景,从未花时间学习ZSH。好知道! - Ziyan Junaideen尝试将$PATH放在末尾。
export PATH=/usr/local/git/bin:/usr/local/bin:$PATH
cd ~/
touch .bash_profile
open .bash_profile
export PATH=$PATH:/usr/local/git/bin:/usr/local/bin:
保存,退出,重启终端并享受使用吧。
我也遇到了同样的问题。
进入 ../etc/ 目录, 然后使用 ls 命令确保你的 "paths" 文件在其中, 用 vim 命令打开 paths 文件,在文件末尾添加 "/usr/local/bin"。
sudo mkdir -p /etc/paths.d # was optional in my case
echo /usr/local/git/bin | sudo tee /etc/paths.d/mypath1
在MAC OS Catalina中,这是我成功的步骤,所有上述解决方案都有所帮助,但没有解决我的问题。