zsh中等号有什么特殊含义?

use*_*428 9 unix linux shell zsh

在我的zsh脚本中,我有一条线

echo some text ================================
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,为此行发出了错误消息:

zsh: =============================== not found
Run Code Online (Sandbox Code Playgroud)

从命令行进行试验,我发现当有一个等号时,shell会感到沮丧:

$ echo =z
zsh: z not found
Run Code Online (Sandbox Code Playgroud)

但在这里,我们有:

$ echo =echo
/usr/bin/echo
Run Code Online (Sandbox Code Playgroud)

从这个观察来看,它看起来好像

=XXX
Run Code Online (Sandbox Code Playgroud)

会被解释为

$(which XXX)
Run Code Online (Sandbox Code Playgroud)

但是,我没有在zsh联机帮助页中找到任何有关此"替换"的内容.这块魔法描述在哪里?

Max*_*fer 9

来自文档:

14.7.3'='扩展

如果一个单词以不带引号的'='开头并且设置了EQUALS选项,则该单词的其余部分将被视为命令的名称.如果该名称存在命令,则该单词将替换为该命令的完整路径名.

更多的话,这里

  • 对于任何想要关闭此选项的人,命令是“setopt NO_EQUALS”。我正在使用 sox 音频程序,并且存在以等于字符开头的有效命令行参数。 (2认同)