加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

文件 – 简单的Bash – 用于f in *

发布时间:2020-12-16 01:11:03 所属栏目:安全 来源:网络整理
导读:考虑这个简单的循环: for f in *.{text,txt}; do echo $f; done 我想只回显有效的文件名.在脚本中使用$f变量一切都很好,除非没有该扩展名的任何文件.在空集的情况下,$f设置为* .text和上面的行回声: *.text*.txt 而不是回声.如果您尝试将$f用于期望实际真
考虑这个简单的循环:
for f in *.{text,txt}; do echo $f; done

我想只回显有效的文件名.在脚本中使用$f变量一切都很好,除非没有该扩展名的任何文件.在空集的情况下,$f设置为* .text和上面的行回声:

*.text
*.txt

而不是回声.如果您尝试将$f用于期望实际真实文件名的任何内容而不是*,则会产生错误.

如果有任何文件与通配符匹配,那么它不是一个空集,一切都按我的意愿运行.例如

123.text
456.txt
789.txt

如何在没有错误的情况下执行此操作,并且没有看起来像星号匹配$f的第一个字符串的过度复杂性?

设置nullglob选项.
$for f in *.foo ; do echo "$f" ; done
*.foo
$shopt -s nullglob
$for f in *.foo ; do echo "$f" ; done
$

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读