shell使用文件通配符{},变量自动添加单引号,无法识别问题

这篇具有很好参考价值的文章主要介绍了shell使用文件通配符{},变量自动添加单引号,无法识别问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

脚本关键部分如下:

获取一周七天的日期,然后利用通配符,直接查看七天内的文件

weekdays=`/opt/uploadcheck/calculateDate.sh $start_week $end_week`
weekdays=`echo $weekdays | awk '{ gsub(/ /,","); print $0 }'`
echo $weekdays

zcat /opt/a_"{$weekdays}"_00_001.csv.gz

执行出现错误,通配符没有被解析,而是被当作整体处理:

cat: /opt/a_{20230618,20230619,20230620,20230621,20230622,20230623,20230624}_00_001.csv.gz: No such file or directory

通过sh -x查看分析,原因为shell自动为该变量添加单引号,导致无法解析

修改如下,可执行,先获取实际的文件名:

weekdays=`/opt/uploadcheck/calculateDate.sh $start_week $end_week`
weekdays=`echo $weekdays | awk '{ gsub(/ /,","); print $0 }'`
echo $weekdays

weekfiles=`eval ls /opt/a_"{$weekdays}"_00_001.csv.gz`

zcat /opt/a_"{$weekfiles}"_00_001.csv.gz

参考链接:

linux - SHELL(bash)脚本编程六:执行流程 - 学习 - SegmentFault 思否


 文章来源地址https://www.toymoban.com/news/detail-498682.html

到了这里,关于shell使用文件通配符{},变量自动添加单引号,无法识别问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL使用通配符进行数据搜索以及过滤

    目录 1.什么是通配符? 2.通配符之→百分号(%) 3.通配符之→下划线(_) 4.通配符使用注意事项 *本文涉及概念来源于图灵程序设计丛书,数据库系列——《MySQL必知必会》 通配符(wildcard) :用来匹配值的一部分的特殊字符。简单来说,就是在进行数据库查找时,并不总是明确知道

    2024年02月01日
    浏览(47)
  • 使用certbot申请https通配符证书【阿里云篇】

    解决阿里云 DNS 不能自动为通配符证书续期的问题 当我们使用 certbot 申请 通配符 证书时,需要手动添加 TXT 记录。每个 certbot 申请的证书有效期为 3 个月,虽然 certbot 提供了自动续期命令,但是当我们把自动续期命令配置为定时任务时,我们无法手动添加新的 TXT 记录用于

    2024年02月19日
    浏览(40)
  • office办公技能|word中的常见通配符使用

    操作方法: 1、快捷键 Ctrl+H,打开Word的查找替换窗口,单击【更多】按钮,勾选“使用通配符”。 2、在查找内容处,输入“替换内容*^13”,替换为处什么都不填。 3、单击【全部替换】。 (1)点击【开始】-【编辑】-【替换】按钮或按【Ctrl+H】组合键,打开“查找与替换”

    2024年01月20日
    浏览(62)
  • python之[正则表达式]--通配符使用方法(最新可用)

    . 匹配任意字符,除了换行符 ^ 匹配字符串开始的位置 $ 匹配字符串结束的位置,当出现多组符合的匹配时,返回字符串最后的那组匹配 * 匹配 0,1,n 次 前面的原子【贪婪模式:尽可能多的匹配】 ? 匹配 0,1 次 前面的原子【懒惰模式:精确匹配】 + 匹配 1,n 次 前面的原子

    2024年02月07日
    浏览(58)
  • word中使用通配符批量将参考文献设置为上角标

    目录 一、word中的通配符匹配规则 二、匹配单个参考文献 三、匹配多个参考文献 四、操作方式 (1)打开word中的替换功能  (2)输入要查找的内容 (3)选择替换格式 (4)点击替换 ? 匹配任何单个字符。 * 匹配任何字符的序列。 [] 匹配在括号中的任何单个字符。 [!] 匹配任

    2024年02月10日
    浏览(65)
  • Spring Cloud Foundry上使用通配符模式匹配进行的安全绕过漏洞 CVE-2023-20873

    背景:公司项目扫描到 Spring Cloud Foundry上使用通配符模式匹配进行的安全绕过漏洞 CVE-2023-20873 CVE-2023-20873:在Cloud Foundry上使用通配符模式匹配进行的安全绕过 高风险 | 2023年5月18日 | CVE-2023-20873 在Spring Boot版本3.0.0 - 3.0.5, 2.7.0 - 2.7.10, 2.6.0 - 2.6.14, 2.5.0 - 2.5.14以及旧版支持的版本

    2024年02月09日
    浏览(70)
  • Elasticsearch 通配符查询

    通配符查询(wildcard query) 匹配字段被通配符表达式(没有被分析)匹配的文档。支持的通配符为*(匹配任意字符序列,包括空字符序列)以及?(匹配任意单字符)。注意,此查询可能会很慢,它需要迭代许多字段值。为了防止极慢的通配符匹配,通配符字段值不能以一个

    2024年02月11日
    浏览(86)
  • Linux详解:通配符

    Linux是一款开源操作系统,其灵活性和可定制性一直受到开发者的喜爱和追捧。而且,Linux在文件管理方面提供了丰富的功能,例如通配符,它是一种用于匹配文件名的特殊字符。通配符在Linux中可以帮助我们更加方便和快捷地查找和操作文件。本文将介绍Linux中常用的通配符

    2024年02月09日
    浏览(61)
  • 【类型通配符】

    为了表示各种泛型List的父类,可以使用类型通配符 类型通配符:? List?:表示元素类型未知的List,它的元素可以匹配任何的类型 这种带通配符的List仅表示它是各种泛型List的父类,并不能把元素添加到其中 如果不想让List?是任何泛型的父类,只想让它代表某一类泛型List的父

    2024年02月17日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包