Answers:
如果要所有可能的组合,请使用:
for i in *.[Pp][Nn][Gg]; do
要么
shopt -s nocaseglob
for i in *.png; do
尽管这会使您脚本的所有外壳程序glob(即通配符文件匹配)不区分大小写,直到您运行为止shopt -u nocaseglob
。
如果您确实只想要.PNG和.png(而不是例如.PnG或.pnG),则可以使用
shopt -s nullglob
for i in *.png *.PNG; do
要么
for i in *.png *.PNG; do
[[ -e "$i" ]] || continue
...进行nullglob或存在性检查的原因是,如果仅具有小写或大写扩展名,则它将在文件列表中包含不匹配的模式,从而导致循环主体出错。与nocaseglob一样,您可能希望之后再关闭nullglob shell选项(尽管根据我的经验,启用nullglob通常会很好,尤其是在脚本中)。实际上,我认为将nocaseglob或存在性检查用于所有此类文件匹配是一个好主意,以防万一没有匹配项。
for i in *.{png,PNG}