Zsh 中 zmodload 与 autoload 的区别

Joo*_*wan 4 shell zsh

zmodload命令和Zsh 中的有什么区别autoload?他们似乎在做类似的事情,并且手册上没有说太多。例子:

zmodload zsh/terminfo
Run Code Online (Sandbox Code Playgroud)

autoload -U zsh/terminfo
Run Code Online (Sandbox Code Playgroud)

Mar*_*ert 5

Zsh 的手册确实解释了其中的差异(尽管不是在一处):

\n\n

由于zsh/terminfo是 Zsh 提供的模块,因此您应该使用zmodload来加载它(而不是 autoload)。自动加载zsh/terminfo不会执行任何操作,因为它不是一个函数,并且它不是用 shell 脚本编写的。

\n

请注意,在大多数 Zsh 发行版(例如 macOS 中包含的发行版)上,某些 Zsh 模块在您尝试使用它们时会动态加载,因此您甚至不需要\xe2\x80\x99 zmodload。但是,它没有记录哪些内容,并且如果您正在编写旨在更广泛分发的函数或脚本,那么您不能依赖于此。

\n