代码之家  ›  专栏  ›  技术社区  ›  Delta George

为什么以“=”开头的令牌会更改zsh中命令的语义?

  •  1
  • Delta George  · 技术社区  · 2 年前

    以下shell命令无需解释

    a=1
    

    然而,当添加额外的空间时,zsh会出现意外错误

    a =1
    zsh: 1 not found
    

    有人能解释一下吗?“=”是zsh是什么意思?

    Bash产生了一个我预期的错误:

    a =1
    bash: a: command not found
    
    1 回复  |  直到 2 年前
        1
  •  2
  •   Toby Speight    2 年前

    精美的手册上写道:

    ' = '扩展

    如果一个单词以未加引号的'开头 = '和 EQUALS 选项为 集合,则该单词的剩余部分将作为 命令如果使用该名称存在命令,则该单词将被替换 按命令的完整路径名。

    因此:

    %echo =ls
    /bin/ls