我不知道';我不知道散列在zsh中是什么意思

我不知道';我不知道散列在zsh中是什么意思,zsh,Zsh,curl是我在命令行中经常使用的命令。当我使用ZSH时,我发现-#选项不起作用;该选项在BASH中运行良好--请参见下面的代码: ZSH: → curl --progress-bar www.google.com > google.html ######################################################################## 100.0% → curl -# www.google.com > google.html z

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%

当然,如果我不想键入完整的选项名(即,--进度条),我可以定义一个别名来解决这个问题。但我只是好奇ZSH的哪一部分控制着这种行为,以及是否有任何方法可以在我的.zshrc文件中自定义/重新定义这种行为。非常感谢您提供任何有用的信息

zsh
中,如果
.zshrc
具有导致
curl

setopt extended_glob
这个选项意味着

将#、~和^字符视为文件名生成等模式的一部分(初始不带引号的~始终生成命名目录扩展)

因此,我认为最好使用
--progress bar
而不是
-#
(或者)将其包含在引号中,这样可以保持字符的原样,而不会导致shell扩展它


如果
.zshrc
具有导致
curl

setopt extended_glob
这个选项意味着

将#、~和^字符视为文件名生成等模式的一部分(初始不带引号的~始终生成命名目录扩展)

因此,我认为最好使用
--progress bar
而不是
-#
(或者)将其包含在引号中,这样可以保持字符的原样,而不会导致shell扩展它


在。

Quotes中找到此项<代码>'-#'将模拟任何类型的shell本地行为<代码>'-#'将模拟任何类型的shell本地行为。谢谢!引用“-”很好!并获取相关信息@charlesqwu:你可以点击我答案左边的小勾号将其标记为已接受,以便将来参考。此外,问题是默认情况下
zsh
将不匹配的模式视为错误,而不是像
bash
那样将其视为文本字符串。使用
setopt nonomatch
将改变这一点。虽然OP不要求使用别名,但提及noglob似乎是合理的,这可以防止此类扩展,并且不必在~#parm:alias curl='noglob curl'周围加引号,谢谢!引用“-”很好!并获取相关信息@charlesqwu:你可以点击我答案左边的小勾号将其标记为已接受,以便将来参考。此外,问题是默认情况下
zsh
将不匹配的模式视为错误,而不是像
bash
那样将其视为文本字符串。使用
setopt nonomatch
将改变这一点。虽然OP不要求使用别名,但提及noglob似乎是合理的,这可以防止此类扩展,并且不必在~#parm:alias curl='noglob curl'周围加引号