
我最近從 bash 切換到 zsh。在 bash 中,我使用了.
來源指令的點別名,例如
. .bashrc
它與. .bashrc
, . ~/.bashrc
,一起工作. ./.bashrc
。
然而,對於 zsh,點別名的工作方式不同。它僅適用於文件的路徑。但如果我使用沒有路徑的文件則不會:
這不起作用:
. .zshrc
它會給我這個錯誤:.: no such file or directory: .zshrc
但這些都有效:
source .zshrc
. ./.zshrc
. ~/.zshrc
答案1
這其實是標準行為點命令的:它使用 $PATH 搜索,就像運行命令時一樣 – 不是常規的相對路徑。因此,您可以將常用庫放在 ~/bin/ 中,然後. libwhatever.sh
從任何目錄中簡單地載入它們。
執行直接相對路徑查找為非標準 Bash 擴充。
(類似地,dot.
實際上是「shell 語言」標準中列出的主要命令,並且source
是特定於 shell 的別名 - 而不是相反。)