前端之家收集整理的这篇文章主要介绍了
shell – 为什么我在zsh中使用{1..9}会出现此错误?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我运行以下
代码
zgrep -c compinit /usr/share/man/man{1..9}/zsh*
我明白了
zsh: no matches found: /usr/share/man/man2/zsh*
这很奇怪,因为以下工作
echo Masi{1..9}/masi
这表明我的问题可能是Zsh中的一个错误.
以上是Zsh中{1..9}的错误吗?
这不是一个bug,它在单词内部工作正常.你在这里遇到的麻烦是{1..9}不是像* is那样的
通配符表达式;正如你的echo示例所示,它是一个迭代扩展.因此,您的zgrep示例与您在命令行中键入每个备用版本完全相同,然后由于man2中没有以zsh开头的手册页,因此会出错. (如果没有找到匹配,那就错了,而不是与你的大括号序列扩展有任何内在联系.)
如果你这样做,另一方面:
zgrep -c compinit /usr/share/man/man[1-9]/zsh*
你会得到你期望的结果,因为[1-9]是一个普通的通配符表达式.