花拾录

知识库

软件工程 / 工具导入2026/09/220 阅读

Windows 上的自动化钩子拿不到输入、还被超时杀掉:标准输入与超时的坑

你想让"每次会话结束时自动把对话存档"这件事完全自动化,于是配了一个钩子(hook)——在特定事件上自动执行脚本。配好之后,脚本要么拿不到输入,要么跑着跑着被莫名杀掉,钩子形同虚设。 现象 主要三种: 1. 拿不到输入。 钩子按约定会把事件…

#自动化#超时#标准输入#Windows#钩子
软件工程 / 工具导入2026/09/220 阅读

全文检索搜不到文档的前半段:为特定格式写的启发式如何误伤正规文档

你把一份带子标题的结构化文档归档进知识库,之后想搜其中一个关键词,怎么都搜不到。翻回原文一看——那段话明明白白在文档的开头部分。 现象 一份分节的结构化文档归档后,全文检索搜不到它 前面的章节 。实测下来,大约丢掉了整篇的 前 28% :凡…

#回归测试#归档#启发式#全文检索
软件工程 / 工具导入2026/09/220 阅读

后台长任务的输出文件读不到:别把重要输出交给临时目录托管

你挂了一个要跑很久的后台任务,去干别的了。半小时后回来,想看看它跑到哪一步——读取输出文件,报"文件不存在"。 现象 读取后台任务的输出文件时报错,大致是: 长任务还在跑,可它已经产出的输出读不到了。如果这个输出是唯一的证据(例如一份耗时几…

#自动化#输出重定向#临时目录#后台任务
软件工程 / 工具导入2026/09/220 阅读

定时任务既不执行也不报警:应用内调度只在应用开着时才生效

你配了一个每天早上跑数据同步的定时任务,刚开始几天都好好的。后来出门几天回来,发现数据面板停在上周,翻遍通知也没找到一条告警。 现象 任务没产出、也没通知,数据停在几天前。最坑的地方是 "没跑"本身没有任何反馈 ——它不会报错,不会发失败通…

#可用性#自动化#调度#定时任务
软件工程 / 工具导入2026/09/220 阅读

改了主面板另一个同源面板没跟着改:一份逻辑两处实现的代价

你花了一个下午优化监控面板的算法,测完很满意。几天后用户反馈"另一个页面数据不对"——你才发现,同一个逻辑在代码里有第二份实现,而你只改了第一份。 现象 改了一个监控面板的某段逻辑,另一个同源的监控面板却没有跟着改,两边显示的数据开始不一致…

#重构#维护成本#并行实现#代码重复
软件工程 / 工具导入2026/09/220 阅读

一批页面样式不生效、筛选没反应,源头是代码生成时的成片拼写错误

你让 AI 生成了一批页面,本地跑起来发现有的地方样式不对、有的筛选按钮点了没反应。逐个看代码,你会发现问题不是逻辑——是成片的拼写错误。 现象 一批页面出现两类症状: 样式不生效 :元素该有的圆角、背景、布局都没出来; 筛选完全没反应 :…

#代码复核#lint#拼写错误#AI 生成代码
软件工程 / 工具导入2026/09/220 阅读

确定性函数冒充"随机":为什么你的流水线每天生成同一批结果

你给流水线加了定时任务,每天自动跑一遍,满心期待每天产出新鲜内容。结果打开一看——跟昨天一模一样,跟前天也一模一样。问题不在定时任务,而在那个被你当成"随机"的挑选函数。 现象 流水线每天都生成同一批候选,内容高度重复。加了定时任务之后依然…

#Python#定时任务#内容去重
软件工程 / 工具导入2026/09/220 阅读

每次运行都刷 RequestsDependencyWarning——版本不匹配警告该在源头修

脚本功能一切正常,可每次运行都要先刷一行黄色警告,把真正的正常输出挤得看不见。命令行工具尤其难受:想看结果,得先拨开这行噪声。 现象 几乎每次运行脚本,输出开头都固定带着一行警告: 下面的业务输出就淹在这行下面。一行两行还好,对于那些要在循…

#日志#警告处理#依赖管理#Python
软件工程 / 工具导入2026/09/220 阅读

功能上线一个月从未生效——同名键造成的“接线 bug”与如何验证功能真的在跑

有些 bug 只存在于"代码是否正确"和"功能是否生效"之间的那道缝里。一个功能上线将近一个月,代码安安静静地待在那里,测试也测不出来,可它 从来没有真正起过作用 。 现象 某个功能上线后,相关的分数(评分、权重、标签)一直没有任何变化,跟…

#代码审查#调试#测试#软件工程
软件工程 / 工具导入2026/09/220 阅读

.gitignore 排除了文件,README 里的引用却成了死链

你在仓库里加了 .gitignore 规则,不让某些「本地专属」的文件入库——本地配置、私有的笔记、临时的机器说明。文件确实没进仓库,可推送之后,别人打开 README,发现里面指向这些文件的链接点不开,全是死链。 现象 .gitignor…

#版本控制#文档#死链#README#gitignore#git
软件工程 / 工具导入2026/09/220 阅读

SSH 挂断后远端后台进程还在空转:断线不等于清理

你通过 SSH 在服务器上跑了个多线程的满负载测试命令。命令看着卡住不动,你不耐烦地按了 Ctrl+C,或者干脆关掉了本地终端。你以为「命令停了,服务器就消停了」。几个小时后,服务器的 CPU 一直飙满,一查,那个测试进程还在后台空转,跑了…

#压力测试#运维#pkill#后台进程#进程管理#SSH
软件工程 / 工具导入2026/09/220 阅读

一个空输出不能当结论:readlink 返回空不代表程序不存在

你用 readlink 查一个软链接,输出是空的。你据此判断「这个程序不见了」,准备上报或者重装。结果旁边的人随手 ls 了一下那个安装目录,程序好好地待在那儿,一应俱全。一个空输出,差点让你做出一连串错误的决定。 现象 readlink …

#证据#交叉验证#软链接#readlink#诊断#排查
软件工程 / 工具导入2026/09/220 阅读

Windows 下 sed -i 批量替换静默漏改:为什么不能盲批量替换

你重构了一个模块,改了一批文件里的引用路径,用的是 sed i 一条命令扫过整个目录。命令跑完,回显干净,没有任何报错。你以为改完了,直到运行时某个模块「找不到」,才发现有些文件压根没改到。 现象 sed i 's/旧路径/新路径/g' .…

#验证#重构#Windows#Git Bash#批量替换#sed
软件工程 / 工具导入2026/09/220 阅读

SSH 内联执行复杂 shell 引号总是对不上:改成上传脚本文件

你想通过 SSH 在远端服务器上跑一段稍微复杂点的 shell——带循环、带变量、带条件判断。于是把它塞进 ssh host "...一大段..." 里。结果反复失败,报错五花八门,你开始一个引号一个引号地数,改一个坏一个,陷入「数引号」的…

#自动化#远程执行#shell#转义#引号#SSH
软件工程 / 工具导入2026/09/220 阅读

命令之间的工作目录会保留、shell 状态不会:一个容易误判的细节

你在一个能连续执行命令的终端里干活,前面 cd 进了某个目录,觉得「已经切过去了」,后面几条命令就默认在当前目录下跑。结果它们跑在了别的地方,行为全错。你回头看,那条 cd 明明成功了。 现象 表现有好几种,都很迷惑: 「上一条 cd 好像…

#排查#命令行#状态#cd#工作目录#shell
软件工程 / 工具导入2026/09/220 阅读

bash 里内联调用 PowerShell,$_ 被提前吃掉了:嵌套展开的顺序问题

你只想从 Git Bash 里快速调一段 PowerShell,于是写了 powershell Command "... 用 $ 处理当前对象 ..."。命令发出去了,PowerShell 却报一堆「无法识别为 cmdlet」。你盯着自己写…

#Git Bash#跨shell#变量展开#转义#PowerShell#bash
软件工程 / 工具导入2026/09/220 阅读

开了 MSYS_NO_PATHCONV 之后 /dev/null 反而坏了:修一个坑挖出下一个坑

你刚解决了一个路径被 MSYS 悄悄改写的问题,办法是给命令加上 MSYS NO PATHCONV=1。命令不再乱改参数了,但这次它换了个姿势报错,报的还是个看起来像网络故障的错误。 现象 命令输出: 这个错误码 (23) 和「write」…

#副作用#排查#curl#dev/null#MSYS#Git Bash
软件工程 / 工具导入2026/09/220 阅读

Git Bash 的 /tmp 和 Windows Python 的 /tmp 根本不是同一个目录

你用 curl 从 Git Bash 里下了个文件到 /tmp/x,命令回显一切正常。紧接着用 Windows 版的 Python 去读 /tmp/x,报「文件不存在」。你回去看 /tmp 目录,文件明明在那儿。两个程序对同一个路径,看到的…

#跨环境#Python#Windows#路径#tmp#MSYS#Git Bash
软件工程 / 工具导入2026/09/220 阅读

Git Bash 里以 / 开头的参数被悄悄改写成 Windows 路径:MSYS 路径转换

你在 Git Bash 里执行一条命令,参数里带了点 Unix 风格的路径。命令跑完了,没有任何报错,但结果完全不对——它处理的是另一个文件。你反复检查参数,确实写的是 /tmp/x,可命令像是在跟一个你从没见过的文件打交道。 现象 几个典…

#命令行#Windows#路径转换#MSYS#Git Bash
软件工程 / 工具导入2026/09/220 阅读

Windows 写好的脚本传到 Linux 就失灵:行尾那个看不见的 \r

一个 shell 脚本,你在 Windows 上写完、测试通过,信心满满地 scp 到服务器上跑。结果各种诡异:命令被拼错、#!/bin/bash 像是失效了、偶尔还报一句莫名其妙的「找不到命令」。你盯着服务器上的文件看,内容明明和本地一模…

#shebang#跨平台#shell#Linux#LF#CRLF#换行符