jos*_*t21 9 linux bash zsh shell
我最近从 bash 切换到 zsh。在 bash 中,我.
为源命令使用了点别名,例如
. .bashrc
Run Code Online (Sandbox Code Playgroud)
它适用于. .bashrc
, . ~/.bashrc
, . ./.bashrc
。
但是,对于 zsh,点别名的工作方式不同。它仅适用于文件的路径。但如果我使用没有路径的文件,则不会:
这不起作用:
. .zshrc
Run Code Online (Sandbox Code Playgroud)
它会给我这个错误: .: no such file or directory: .zshrc
但这些都有效:
source .zshrc
. ./.zshrc
. ~/.zshrc
Run Code Online (Sandbox Code Playgroud)
这实际上是dot 命令的标准行为:它使用 $PATH 搜索,就像运行命令时一样——而不是常规的相对路径。因此,您可以在例如 ~/bin/ 中拥有您的公共库,并且只需. libwhatever.sh
从任何目录加载它们。
执行直接相对路径查找是一种非标准的 Bash 扩展。
(同样, dot.
实际上是“shell 语言”标准中列出的主要命令,并且source
是特定于 shell 的别名——而不是相反。)
归档时间: |
|
查看次数: |
2757 次 |
最近记录: |