小编Vin*_* W.的帖子

for 循环 glob 事故

我正在尝试设置一个脚本,该脚本将循环遍历一组目录,并在找到 .jpg 文件时做一件事,在找到 .nef 文件时做另一件事。问题是,如果一个目录没有 .jpg 文件(或 .nef),那么 glob 条目不再是一个扩展的 glob,而只是一个字符串。例如:

my_dir="pictures/"
ext="JPG"
for f in "$my_dir"*."$ext"; do
    echo $f
done
Run Code Online (Sandbox Code Playgroud)

如果 my_dir 文件夹中有 .JPG 文件,那么它们将在命令行上正确显示。

pictures/one.JPG
pictures/two.JPG
Run Code Online (Sandbox Code Playgroud)

但是,如果 my_dir 没有 .JPG 文件,则循环将进入一次迭代并回显:

pictures/*.JPG
Run Code Online (Sandbox Code Playgroud)

我如何构造它,以便如果 glob 没有匹配项,它就不会进入 for 循环?

bash wildcards

16
推荐指数
2
解决办法
6953
查看次数

标签 统计

bash ×1

wildcards ×1