从脚本调用 zmodload

nfa*_*rar 5 zsh

我试图了解 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)

知道为什么会发生这种行为吗?