让我们尝试使用默认设置zsh
中的命令:
echo F#
将导致以下错误消息:
zsh: no match found: F#
我的stackoverflow搜索表明可以通过设置setopt nonomatch
关闭它,然后zsh
表现得更像bash
:glob模式,如果没有匹配则传递给程序找到。它就像一个魅力。
我的好奇心并不止于此。我还有一个问题:#
在上述陈述中试图匹配的内容是什么?我搜索了bash和zsh文件但还没有得到明确的答案。希望有人能清除我的怀疑。感谢。
答案 0 :(得分:2)
您似乎设置了EXTENDED_GLOB
选项。在这种情况下,F#
被视为匹配零个或多个字母F
的模式(参见正则表达式F*
)。
当您运行echo F#
时,shell会尝试将F#
扩展为名称为空字符串F
,FF
的所有文件。如果没有,则匹配失败,并且设置NOMATCH
选项(默认情况下),失败会产生观察到的错误。