curl是我在命令行上经常使用的命令。当我使用ZSH时,我发现 - #选项不起作用;该选项在BASH中工作正常 - 请参阅下面的代码:
ZSH:
→ curl --progress-bar www.google.com > google.html
######################################################################## 100.0%
→ curl -# www.google.com > google.html
zsh: no matches found: -#
BASH:
$ curl --progress-bar www.google.com > google.html
######################################################################## 100.0%
$ curl -# www.google.com > google.html
######################################################################## 100.0%
当然,如果我不想输入完整的选项名称(即--progress-bar),我可以定义一个别名来解决这个问题。但我只是好奇ZSH的哪个部分正在控制这种行为,以及是否有任何方法可以在任何我的.zshrc文件中自定义/重新定义此行为。非常感谢任何有用的信息!
答案 0 :(得分:4)
在zsh
中,如果.zshrc
以下行导致curl
setopt extended_glob
此选项意味着
“将#,〜和^字符视为文件名生成等模式的一部分(初始未加引号的〜总是产生命名目录扩展。)”
所以我认为最好使用--progress-bar
而不是-#
(或)将其包含在引号中应保留字符,不要让shell扩展它。