我试图了解 zsh 模块是如何加载的。根据文档:
zsh 的一些可选部分位于模块中,与 shell 的核心分开。这些模块中的每一个都可以在构建时链接到 shell,或者如果安装支持此功能,则可以在 shell 运行时动态链接。模块在运行时使用 zmodload 命令链接。
如果我启动一个新的 shell 并运行命令,zmodload它将显示当前加载的模块(zsh/datetime未加载)。
我可以使用在运行时加载它zmodload zsh/datetime。如果我再次运行zmodload,我可以看到它现在已列出。
但是,当我像这样执行脚本时,找不到 zmodload 命令:
%./testload.zsh
#!/usr/bin/env zsh
zmodload zsh/datetime
echo "EPOCHSECONDS: $EPOCHSECONDS"
./testload.zsh: line 3: zmodload: command not found
Run Code Online (Sandbox Code Playgroud)
但是,如果我在调用新的 zsh shell 时执行脚本,它将成功运行:
% zsh testload.zsh
#!/usr/bin/env zsh
zmodload zsh/datetime
echo "EPOCHSECONDS: $EPOCHSECONDS"
EPOCHSECONDS: 1501004101
Run Code Online (Sandbox Code Playgroud)
知道为什么会发生这种行为吗?
| 归档时间: |
|
| 查看次数: |
2894 次 |
| 最近记录: |