Wanoohe Blog
Blog CLIfor Tyndall · v0.5.0

04 · Mental model

理解 CLI 的通用机制

这些概念同样适用于 Git、Docker、kubectl 和绝大多数工程命令行工具。

命令、参数与选项

片段角色例子
blog主命令/可执行文件类似 git、docker、kubectl
post update子命令路径先选资源,再选动作
42 article.md位置参数顺序和必填性由帮助定义
--note "说明"带值选项名称明确,顺序通常可调整
--dry-run布尔选项改变执行模式,不是另一个资源

stdout、stderr 与退出码

正常结果进入 stdout,诊断和错误进入 stderr;成功通常退出 0,参数、配置、认证、冲突或网络错误使用非零码。脚本不应该靠中文句子猜成功,而应检查退出码,并在需要时解析 --json

环境变量与配置文件

配置文件是持久状态,环境变量是进程继承的临时覆盖。config set 采用临时文件加原子 rename,尽可能设置为仅当前用户读写。config list --show-origin 显示最终值来自哪里,避免“文件明明改了却没生效”的黑盒感。

本地快照、revision 与状态机

pull 生成本地快照;diff 比较;update 通过 revision 做条件写入。如果远端 revision 已变化,服务端返回 409,后写者必须重新拉取和合并。文章状态通过 publish、unpublish、trash、restore 转换,不能用任意字段更新绕过状态机。