Shell

採購 .zshrc 時的奇怪行為

  • May 16, 2013

zsh 5.0.2 (x86_64-apple-darwin12.3.0)在最新的 MacOSX 上使用。如果有什麼不同,我也啟用了oh-my-zsh.

.zshrc當我想獲取該文件時,shell 似乎缺少該文件。

以下命令的執行結果應該清楚地暴露我的問題。(~ »是我的提示)。

文件存在

~ » ls -l .zshrc
-rw-r--r--  1 user  staff  1882 May 16 10:43 .zshrc
~ » [[ -r .zshrc ]] && echo "Exists"
Exists

該文件不被“。”讀取。

~ » . .zshrc
.: no such file or directory: .zshrc

我不知道是什麼導致了這種行為,尤其是它有效

~ » . "$(pwd)"/.zshrc
Success!

我的問題是:

為什麼. .zshrc行不通?

.命令在您的 中搜尋文件,$path預設情況下不在目前目錄中搜尋。這就是為什麼當你給出絕對路徑("$(pwd)"/.zshrc)時它起作用的原因。

zsh 手冊中關於.命令

. 文件

$$ arg … $$ 從文件中讀取命令並在目前 shell 環境中執行它們。

如果文件不包含斜杠,或者設置了 PATH_DIRS,則 shell 會查找 $ path to find the directory containing file. Files in the current directory are not read unless ‘.’ appears somewhere in $ 小路。

source命令比較:

源文件

$$ arg … $$ 與 ‘.’ 相同,除了總是搜尋目前目錄並且總是首先搜尋,在 $path 中的目錄之前。

引用自:https://unix.stackexchange.com/questions/76036