您好,欢迎来到欧得旅游网。
搜索
您的当前位置:首页zsh下报错“zsh: no matches found:”

zsh下报错“zsh: no matches found:”

来源:欧得旅游网

问题

db2inst1 的账号下,可以用 db2 ? sql<xxx> 命令来查看 <xxx> 错误代码的含义,例如: db2 ? sql952 。但是今天我发现在 zsh 下,该命令会报错,如下:

➜  ~ echo $0 # 查看当前shell
-zsh
➜  ~ db2 ? sql952
zsh: no matches found: ?

显然,zsh没有把 ? 当作 db2 命令的参数,而是把它当作了命令行的参数。

解决办法

注:个人倾向于第2种方法。一来不用每次命令加前缀,二来匹配的结果能够保持高亮。

方法1

在命令前面加上 noglob 前缀,如下:

noglob db2 ? sql952

方法2

setopt no_nomatch

其它

与此类似的是 grep 命令:

➜  ~ grep -ir hi /tmp/temp
/tmp/temp/aaa.txt:hi Tom, bye!
/tmp/temp/aaa.txt:hi Jerry, bye!
/tmp/temp/aaa.txt:hi there

如果要查找 hixxxbye ,用正则表示为: hi.*bye ,则在zsh下会报错:

➜  ~ grep -ir hi.*bye /tmp/temp
zsh: no matches found: hi.*bye

使用方法1或者方法2之后,就OK了:

➜  ~ grep -ir hi.*bye /tmp/temp 
/tmp/temp/aaa.txt:hi Tom, bye!
/tmp/temp/aaa.txt:hi Jerry, bye!

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- ovod.cn 版权所有 湘ICP备2023023988号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务