我不知道在zsh中哈希(#)的含义

时间:2016-12-30 18:29:22

标签: zsh

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文件中自定义/重新定义此行为。非常感谢任何有用的信息!

1 个答案:

答案 0 :(得分:4)

zsh中,如果.zshrc以下行导致curl

出现此问题
setopt extended_glob

此选项意味着

  

“将#,〜和^字符视为文件名生成等模式的一部分(初始未加引号的〜总是产生命名目录扩展。)”

所以我认为最好使用--progress-bar而不是-#(或)将其包含在引号中应保留字符,不要让shell扩展它。

curl progress-bar option in GitHub中找到了这个。