gpt4 book ai didi

bash - "for"循环通配符评估为变量,如果不存在此类文件

转载 作者:行者123 更新时间:2023-11-29 09:11:00 25 4
gpt4 key购买 nike

$ for f in /etc/shell*; do echo $f; done
/etc/shells
$

好!

$ for f in /etc/no_such*; do echo $f; done
/etc/no_such*
$

不好!

如果没有文件,我如何获得通配符评估?

最佳答案

有一个特定的 shell 选项可以使用 glob 启用此行为,称为 nullglob。要启用它,请使用 shopt -s nullglob

启用此选项后,没有匹配项的模式将计算为空,而不是计算自身。

这是 bash 提供的非标准功能,因此如果您正在使用另一个 shell 或正在寻找更广泛兼容的选项,您可以向循环体添加条件:

for f in /etc/no_such*; do [ -e "$f" ] && echo "$f"; done

这只会在文件存在时回显。

关于bash - "for"循环通配符评估为变量,如果不存在此类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31054538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com