for 循环对不存在的文件



我想处理当前目录中的一组文件(*.ui)。如果找到某些 *.ui 文件,则以下脚本将按预期工作。但是,如果当前目录中不存在 .ui 文件,则输入 for 循环。为什么?

for f in *.ui
do
    echo "Processing $f..."
done

它打印:

Processing *.ui...

使用:

shopt -s nullglob

man bash

零球 如果设置,bash 允许与任何文件匹配的模式(请参阅路径名扩展 以上)扩展到空字符串,而不是它们自己。

你已经知道了方法,"为什么"是 bash 将首先尝试将*.ui与文件匹配,但如果这不起作用(它没有得到任何结果),它会假设你的意思是字符串"*.ui"

for f in "*.ui"
do
    echo "Processing $f..."
done

威尔确实打印"Processing *.ui".

相关内容

  • 没有找到相关文章

最新更新