~ ᐅ docker image inspect nginx | jq .[].Config.ExposedPorts
zsh: no matches found: .[].Config.ExposedPorts
它bash
按预期工作。
我发现了一个不同之处至于bash
和中的管道是如何解释的zsh
,但我不能说这是否与我的情况有关。
答案1
通配符还支持类似正则表达式的字符组语法。例如[a-f]
匹配a
、b
、... 和f
。它只会匹配一个字母。在您的命令中,您指定了一个空组。它永远无法匹配任何内容。
在 Bash 中,如果 glob 模式不匹配任何内容,则会将其按原样传递到命令行。ZSH 不会这样做。相反,它会警告用户。您可以更改此设置:setopt nonomatch
tl;dr: Always quote your arguments if they contain anything but ASCII letters or numbers.
Stack Overflow 上的此问答还有更多细节。