我已经签出了一个项目,该项目包含一个.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/#//}
我有什么
猫.gitignore | 读我的时候;做回声 $i ; 打印 ${~i/#//} ; 完毕
问题
此循环遇到的第一个 glob 失败,它以错误终止
zsh: no matches found: *.exe
我想要的是
“脚本”应该继续遍历文件的每一行,依次尝试每一行。