我想在当前目录中处理一组文件(* .ui)。如果找到某些* .ui文件,则以下脚本按预期工作。但是如果当前目录中没有.ui文件,则输入for循环完全相同。那是为什么?
for f in *.ui
do
echo "Processing $f..."
done
打印:
Processing *.ui...
答案 0 :(得分:1)
使用:
shopt -s nullglob
来自man bash
:
<强>了nullglob 强> 如果设置,bash允许不匹配任何文件的模式(请参阅路径名扩展 以上)扩展为空字符串,而不是自己。
答案 1 :(得分:0)
你已经知道如何,为什么&#39;是bash会首先尝试将*.ui
与文件匹配,但如果这不起作用(它没有结果),它会假设你的意思是字符串"*.ui"
。
for f in "*.ui"
do
echo "Processing $f..."
done
确实会打印"Processing *.ui"
。