当模式不匹配时,如何阻止 bash 返回通配符?

how to stop bash from returning wildcard when pattern doesn match?

当模式匹配此代码按预期工作时:

mkdir -p mytestdir001
for f in "mytestdir???"; do
  echo $f
done

但是当我替换通配符时,没有任何项目会匹配 for 循环 returns 通配符。

除了在循环中检查 f 变量是否等于初始通配符外,还有其他方法可以防止这种情况发生吗?

设置nullglob选项。

$ shopt -s nullglob
$ for f in *notfound ; do echo "$f" ; done
$