我要循环匹配扩展名的文件jpg或txt.我用:
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 shopt和shopt