Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash &引用;至于;如果不存在此类文件,则将循环通配符计算为变量_Bash_For Loop_Wildcard - Fatal编程技术网

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