ターミナルでzshにPATHを通す方法

macOS Catalina以降でデフォルトのシェルがzshになってからPATHを通す作業を初めて行ったので、備忘録を兼ねて。
なお、MojaveなどからOSアップデートした場合はデフォルトのシェルがbashのままになっているようですが、公式サイトにzshへの変更方法が記載されていました。

support.apple.com


少し話が逸れましたが、ターミナルでzshにPATHを通す方法は以下の通りです。

  1. ホームディレクトリ直下に.zshrcというファイルがあるか確認する(なければ新規作成する)
    • find ~/.zshrcなどでファイルがあるか確認できる
    • touch ~/.zshrcなどでファイルが新規作成できる
  2. Vimなどで.zshrcファイルを開き、以下の1行を追記する
    export PATH="$PATH:[追加したいディレクトリの絶対パス]"
  3. .zshrcファイルを閉じ、以下のコマンドを実行する
    source ~/.zshrc


作業としてはこれだけなのですが、ディレクトリの絶対パス~(チルダ)を指定しても展開されなかったり($HOMEは展開されました)、exportコマンドを.zshrcファイルに記述するのではなくターミナルで実行していたせいで一時的にしか有効にならなかったりと、地味に苦戦してしまいました🤦‍♂️


※追記

  • 2.で"を付けずにexport PATH=$PATH:[追加したいディレクトリの絶対パス]と記述すれば、ディレクトリの指定に~が使えました。

    • OK: export ANDROID_HOME=~/Library/Android/sdk
    • NG: export ANDROID_HOME="~/Library/Android/sdk"
      • ~/Library/Android/sdkという文字列がそのまま環境変数ANDROID_HOMEに設定される
  • 上記の"を付けない記述方法において[追加したいディレクトリの絶対パス]にスペースが含まれるときは、\(バックスラッシュ)をスペースの直前に追加してエスケープする必要がありました。

    • OK: export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home
    • NG: export JAVA_HOME=/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home
      • not valid in this context: Studio.app/Contents/jre/jdk/Contents/Homeのように、スペース以降が無効な文字列として認識される