在 bash 脚本中循环使用不同的文件扩展名

问题描述 投票:0回答:2

我无法发现这里的错误,为什么它没有通配符但使用

ls *.{jpg,JPEG,JPG,jpeg,PNG,png}
它运行完美?

如何解决?

for file in *.{jpg,JPEG,JPG,jpeg,PNG,png}
  do
echo $file
  #convert "${file}" -scale 50% gallery_"${file}".jpg
done
bash glob
2个回答
4
投票

启用

nullglob
以避免未扩展的全局:

shopt -s nullglob

0
投票

对于它的价值,您还可以使用

shopt -s nocaseglob
来避免列出这些扩展的所有可能的区分大小写的排列,OP 的列表仍然没有完全涵盖这些排列:

shopt -s nocaseglob
for file in *.{jpg,jpeg,png}; do
...
© www.soinside.com 2019 - 2024. All rights reserved.