8 我想处理一堆以某些后缀结尾的文件,因此我编写了以下zsh脚本,但是它不起作用。 EXT=(.jpg .png .gif) EXT=${(j.|.)EXT} # EXT becomes '.jpg|.png|.gif' for f in *($EXT); do # should become '*(.jpg|.png|.gif)' but failed process-one-file $f done 为什么不起作用?如何混合参数替换和glob模式? zsh glob — 曾玉晓 source
10 它不起作用,因为在in中zsh,变量扩展默认情况下不会进行通配。这就是为什么zsh您可以做到的: rm -- $file 在其他外壳中时,您需要: rm -- "$file" 如果您确实想要遍历,则需要明确地要求它,如下所示: rm -- $~file_pattern 在您的情况下: for f (*($~EXT)) process-one-file $f (请注意,按照惯例,我们倾向于将大写变量名用于环境变量) — 斯特凡·查泽拉斯 source