Bash &引用;至于;如果不存在此类文件,则将循环通配符计算为变量
好! 糟糕Bash &引用;至于;如果不存在此类文件,则将循环通配符计算为变量,bash,for-loop,wildcard,Bash,For Loop,Wildcard,好! 糟糕 如果没有文件存在,我如何从通配符求值中获益?有一个特定的shell选项来启用globs的这种行为,称为nullglob。要启用它,请使用shopt-s nullglob 启用此选项时,没有匹配项的模式的计算结果为零,而不是其自身 这是bash提供的非标准功能,因此,如果您正在使用另一个shell或正在寻找更广泛兼容的选项,则可以向循环体添加一个条件: $ for f in /etc/no_such*; do echo $f; done /etc/no_such* $ 这只会在文件存
如果没有文件存在,我如何从通配符求值中获益?有一个特定的shell选项来启用globs的这种行为,称为
nullglob
。要启用它,请使用shopt-s nullglob
启用此选项时,没有匹配项的模式的计算结果为零,而不是其自身
这是bash提供的非标准功能,因此,如果您正在使用另一个shell或正在寻找更广泛兼容的选项,则可以向循环体添加一个条件:
$ for f in /etc/no_such*; do echo $f; done
/etc/no_such*
$
这只会在文件存在时回显。非常感谢,Tom
$ for f in /etc/no_such*; do echo $f; done
/etc/no_such*
$
for f in /etc/no_such*; do [ -e "$f" ] && echo "$f"; done