macOS Catalina以降でデフォルトのシェルがzshになってからPATHを通す作業を初めて行ったので、備忘録を兼ねて。
なお、MojaveなどからOSアップデートした場合はデフォルトのシェルがbashのままになっているようですが、公式サイトにzshへの変更方法が記載されていました。
少し話が逸れましたが、ターミナルでzshにPATHを通す方法は以下の通りです。
- ホームディレクトリ直下に
.zshrc
というファイルがあるか確認する(なければ新規作成する)find ~/.zshrc
などでファイルがあるか確認できるtouch ~/.zshrc
などでファイルが新規作成できる
- Vimなどで
.zshrc
ファイルを開き、以下の1行を追記する
export PATH="$PATH:[追加したいディレクトリの絶対パス]"
.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:
上記の
"
を付けない記述方法において[追加したいディレクトリの絶対パス]
にスペースが含まれるときは、\
(バックスラッシュ)をスペースの直前に追加してエスケープする必要がありました。- 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
のように、スペース以降が無効な文字列として認識される
- OK: