最新GNU timeout 的状态归属:同样被终止,为什么一次返回124另一次返回143 给命令套上timeout后,外层脚本需要决定是重试、报警还是继续。但一个非零退出码可能来自业务程序本身,也可能来自超时包装器。启用preserve-status后,同样触发时间限制,得到的数字又会变化。先辨明返回状态... yunqueblog/ 技术教程/ 2026-10-04/ 2 阅读
Bash wait -n -p:先结束的是哪个任务,退出码又属于谁 把三个检查任务放到后台后,父脚本需要知道谁先结束、哪个失败。只在最后执行不带参数的 wait,虽然能等待后台任务,却不能把每个任务的退出码逐一交出来。要建立可靠结果表,需要同时保留进程身份和等待状态。wait -n ... yunqueblog/ 技术教程/ 2026-10-01/ 3 阅读
Git diff --no-index:仓库外也能比较目录,退出码一却未必只有一种原因 拿到两份解压后的配置目录,想知道哪些文件变了,并不一定要先建立仓库。git diff --no-index 可以直接比较磁盘上的两个路径。它适合检查生成文件、发行包或导出结果,但命令返回非零时,脚本不能立即下结论说比... yunqueblog/ 技术教程/ 2026-10-01/ 3 阅读
Bash 命令替换会删掉末尾换行:加了双引号为什么仍然少几个字符 脚本把命令输出放进变量,再原样写回文件,结果文件末尾的空行没了。变量两边明明加了双引号,为什么仍会改变内容?原因可能发生在引用之前:常用的美元括号命令替换,会移除输出末尾连续的换行字符,双引号并不能撤销这一步。这种规... yunqueblog/ 技术教程/ 2026-10-01/ 2 阅读
Bash trap 清理临时目录:保留原始退出码,让失败仍然可见 清理完成,不代表业务成功一个导出脚本先写临时文件,再生成交付结果。中间命令失败后,清理函数顺利删除目录,如果最后却返回成功,调度系统就会把失败任务记成绿色。可靠清理需要同时回答两个问题:工作目录是否收回,以及调用者最... yunqueblog/ 技术教程/ 2026-10-01/ 4 阅读