shell – 为什么我在zsh中使用{1..9}会出现此错误?

前端之家收集整理的这篇文章主要介绍了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]是一个普通的通配符表达式.

猜你在找的Bash相关文章