shell – 为什么我在zsh中使用{1..9}会出现此错误?
发布时间:2020-12-16 01:21:57 所属栏目:安全 来源:网络整理
导读:我运行以下代码 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}的错误吗? 这不是一个b
我运行以下代码
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]是一个普通的通配符表达式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |