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

错误处理 – zsh在glob失败后存活

发布时间:2020-12-14 01:28:15 所属栏目:Linux 来源:网络整理
导读:我检查了一个项目,该项目包含一个.gitignore文件. 这个文件的内容是这样的 vx1% head .gitignore ./deps/*.exe/*.la/.auto.libsChangeLogMakefileMakefile.inaclocal.m4autom4te.cache 我想要 逐行读取文件 对于每行读取,列出要忽略的实际文件 最后我想调整
我检查了一个项目,该项目包含一个.gitignore文件.

这个文件的内容是这样的

vx1% head .gitignore 
./deps
/*.exe
/*.la
/.auto
.libs
ChangeLog
Makefile
Makefile.in
aclocal.m4
autom4te.cache

我想要

>逐行读取文件
>对于每行读取,列出要忽略的实际文件
>最后我想调整脚本来删除这些文件

想要这样做的原因是我不相信项目Makefile来完全清理它生成的文件.

笔记

如您所见,.gitignore在运行命令之前使用了一些我需要修改的glob,否则glob将解析为我的根目录.

我所知道的

动态评估任意字符串作为glob模式

DYN = “* C”

打印$~DYN

剥离前导/,如果存在

DYN = “/ *.C”

打印${~DYN /#//}

我得到了什么

cat .gitignore |读我的时候;回声$i; print ${~i /#//}; DONE

问题

这个循环遇到的第一个glob失败,它以错误终止

zsh:找不到匹配项:* .exe

我想要的是

‘脚本’应该继续遍历文件的每一行,依次尝试每一行.

我自己回答,回答如下

解决方法

以典型的Zsh方式找到了 zsh mailing list的答案 – 当你知道如何以及其他方式时,这很简单.

print *.nosuchextension(N)

(N)glob参数可防止在匹配失败时引发错误.

(编辑:李大同)

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

    推荐文章
      热点阅读