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%
Run Code Online (Sandbox Code Playgroud)
当然,如果我不想输入完整的选项名称(即 --progress-bar),我可以定义一个别名来解决这个问题。但我很好奇 ZSH 的哪一部分控制了这种行为,以及是否有任何方法可以在我的任何 .zshrc 文件中自定义/重新定义这种行为。非常感谢您提供任何有用的信息!
在zsh,如果.zshrc有以下行导致此问题curl
setopt extended_glob
Run Code Online (Sandbox Code Playgroud)
这个选项意味着
“将#、~ 和 ^ 字符作为文件名生成模式的一部分等。(初始未加引号的 ~ 总是产生命名目录扩展。)”
所以我认为最好使用--progress-bar而不是-#(或)将它包含在引号中应该保留字符原样,而不是导致外壳扩展它。
在 GitHub 的 curl 进度条选项中找到了这个。
| 归档时间: |
|
| 查看次数: |
755 次 |
| 最近记录: |