[筆記] zsh 的 PATH 不會將 ~ (tilde) 替代為家目錄位置

最近終於有點時間調整自己的開發環境

將 bash 替換成 zsh



結果在手動到新增 PATH 後

依然顯示

zsh: command not found

這實在是很惱人



後來上網找了很久資料終於看到問題點

是因為 zsh 對於雙引號中間的 ~ 並不解釋為家目錄



zsh 的 guide 中

在 Substitutions 的 Double quotes 章節內容如下

They allow parameter expansion, command substitution and arithmetic substitution, but not any of the others: process substitution doesn't happen, braces and initial tildes and equals signs are not expanded and patterns are not special.

中間還有附上一個表格方便理解



因為我原本是設定

export PATH="~/.composer/vendor/bin:$PATH"


依據規則,並不會替換成家目錄的位置



那怎麼辦呢?

除了替換成絕對路徑

例如 Linux 的 /home/[username] 或 Mac 的 /Users/[username]



最簡單的方式是將波浪符號(~, tilde)

直接換成 $HOME 最快啦!

結果如下

export PATH="$HOME/.composer/vendor/bin:$PATH"


收工!




創用 CC 授權條款
本著作由小克製作,以創用CC 姓名標示-相同方式分享 4.0 國際 授權條款釋出。
本篇永久網址:http://goodjack.blogspot.com/2016/09/tilde-will-not-be-substituted-for-the-path-to-your-home-directory-in-zsh.html