我想在当前目录中处理一组文件(* .ui)。如果找到一些* .ui文件,以下脚本将按预期工作。但是,如果当前目录中不存在.ui文件,则for循环将全部输入相同。这是为什么 ?bash:for不存在的文件的循环
for f in *.ui
do
echo "Processing $f..."
done
它打印:
Processing *.ui...
我想在当前目录中处理一组文件(* .ui)。如果找到一些* .ui文件,以下脚本将按预期工作。但是,如果当前目录中不存在.ui文件,则for循环将全部输入相同。这是为什么 ?bash:for不存在的文件的循环
for f in *.ui
do
echo "Processing $f..."
done
它打印:
Processing *.ui...
你已经有了如何,“为什么”是bash将首先尝试匹配*.ui
的文件,但如果不工作(它会没有结果),它会假设你的意思是字符串"*.ui"
。
for f in "*.ui"
do
echo "Processing $f..."
done
WIL确实打印"Processing *.ui"
。
FAQ:'shop -s nullglob' – devnull