109

当我在终端中“打开 .profile”时,我有以下内容:

export PATH=$PATH:/usr/local/git/bin 

现在我为 Mac 安装了 node.js,它说,

确保 /usr/local/bin 在您的 $PATH 中。

如何添加/usr/local/bin到导出PATH=$PATH:/usr/local/git/bin

4

6 回答 6

124

PATH变量包含一个由冒号分隔的目录列表,因此如果要添加多个目录,只需在它们之间放置一个冒号:

export PATH=$PATH:/usr/local/git/bin:/usr/local/bin

该语法适用于任何与 Bourne 兼容的 shell(sh、ksh、bash、zsh...)。但是 zsh 是最新版本的 MacOS 中的默认 shell,它也以另一种方式公开 PATH - 作为一个名为 (lowercase) 的变量$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
于 2012-06-14T02:47:26.057 回答
20

尝试将 $PATH 放在最后。

export PATH=/usr/local/git/bin:/usr/local/bin:$PATH
于 2012-06-14T02:49:51.377 回答
6

使路径的编辑值在下一个会话中保持不变

cd ~/
touch .bash_profile
open .bash_profile

这将在编辑器中打开 .bash_profile,在将您想要的内容添加到按列分隔每个值的路径之后,在以下内容中写入。

export PATH=$PATH:/usr/local/git/bin:/usr/local/bin:

保存,退出,重新启动您的终端并享受

于 2018-12-12T13:21:24.037 回答
4

我和你有同样的问题。

cd 到 ../etc/ 然后使用 ls 确保您的“paths”文件位于 vim 路径中,在文件末尾添加“/usr/local/bin”。

于 2015-05-20T07:45:15.417 回答
1

我倾向于觉得这很整洁

sudo mkdir -p /etc/paths.d   # was optional in my case
echo /usr/local/git/bin  | sudo tee /etc/paths.d/mypath1
于 2017-12-19T14:44:42.723 回答
1

在 MAC OS Catalina 中, 这是对我有用的步骤,上述所有解决方案确实有帮助,但没有解决我的问题。

  1. 检查节点--version,仍然是旧版本。
  2. 光盘~/
  3. 原子 .bash_profile
  4. 删除指向旧节点版本的 $PATH,在我的例子中是 /usr/local/bin/node/@node8
  5. 将其添加并保存到 $PATH 而不是“export PATH=$PATH:/usr/local/git/bin:/usr/local/bin”
  6. 使用节点关闭所有应用程序(终端、模拟器、浏览器博览会等)
  7. 重启终端并检查 node --version
于 2020-04-04T23:19:39.023 回答