如果文件名glob没有匹配,如何匹配任何内容

Joh*_*ood 12 bash glob shopt

我要循环匹配扩展名的文件jpgtxt.我用:

for file in myDir/*.{jpg,txt}
do
  echo "$file"
done
Run Code Online (Sandbox Code Playgroud)

问题:如果目录根本不包含jpg文件,则循环将有一次带输出的迭代myDir/*.jpg.我认为*将被任意文件替换(如果不存在文件,则无法扩展).如何避免不必要的迭代?

Cyr*_*rus 18

使用它来避免不必要的迭代:

shopt -s nullglob
Run Code Online (Sandbox Code Playgroud)

来自man bash:

nullglob:如果设置,bash允许不匹配任何文件的模式(请参阅上面的Pathname Expansion)扩展为空字符串,而不是自己.

见:help shoptshopt