Bash trap 清理临时目录:保留原始退出码,让失败仍然可见 清理完成,不代表业务成功一个导出脚本先写临时文件,再生成交付结果。中间命令失败后,清理函数顺利删除目录,如果最后却返回成功,调度系统就会把失败任务记成绿色。可靠清理需要同时回答两个问题:工作目录是否收回,以及调用者最... yunqueblog/ 技术教程/ 2026-10-01/ 3 阅读
Bash getopts:选项解析、剩余位置参数和两种错误要分开 先写清命令行允许什么顺序准备一个处理文件的小工具:-v 开启详细输出,-n 指定处理次数,其余参数是文件名。实现前先确定调用约定:选项放前面,文件放后面;文件名可能包含空格,也可能以横线开头。这个约定直接决定哪些输入... yunqueblog/ 技术教程/ 2026-10-01/ 3 阅读
Bash heredoc 引号实战:生成配置时,哪些内容会被提前展开 脚本用 heredoc 写配置时,文件中本来应该保留的变量名却变成了当前环境的值,常见原因是结束标记没有引用。heredoc 并非简单的多行字符串,它是一种重定向结构,正文是否展开由标记的写法决定。本文在 Linux... yunqueblog/ 技术教程/ 2026-10-01/ 4 阅读
Bash 文件名处理:用 NUL 分隔保住空格、引号和换行 批量处理文件时,最难发现的错误往往发生在读入清单的那一步。平常文件名没有空格,脚本看起来正常;一旦遇到下载文件、用户上传内容或带换行的名字,按行切分就可能把一个文件变成多个参数。本文使用 Linux、Bash 4 及... yunqueblog/ 技术教程/ 2026-10-01/ 4 阅读
Bash 管道退出码:别让 tee 把前面的失败藏起来 构建命令报错了,CI 却显示成功,一个常见原因是输出被接到 tee 后,只检查了整条管道的默认状态。本文针对 GNU Bash 5.x 的前台管道;PIPESTATUS 是 Bash 特性,不要把示例直接交给其他 s... yunqueblog/ 技术教程/ 2026-10-01/ 3 阅读