1. ホーム
  2. macos

[解決済み] Macで$PATHに/usr/local/binを追加する方法

2022-11-01 16:23:53

質問

ターミナルで「open .profile」を実行すると、以下のようになります。

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

さて、Mac用のnode.jsをインストールしたら、こうなりました。

usr/local/binが$PATHに含まれていることを確認してください。

どのようにすれば /usr/local/bin を書き出すには PATH=$PATH:/usr/local/git/bin ?

どのように解決するのですか?

この PATH 変数はコロンで区切られたディレクトリのリストを保持するので、複数のディレクトリを追加したい場合は、それらの間にコロンを置くだけです。

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

この構文はBourne互換のシェル(sh, ksh, bash, zsh...)であれば動作します。しかし、最近の MacOS のデフォルトシェルである zsh は、別の方法で 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