linear-cli 退出码全解析:0/2/3/4/5 各代表什么,脚本如何精准判断失败原因?
发布时间:2026/10/16 21:56:32 锦皓数字建站

【免费下载链接】linear-clilinear without leaving the command line: list, start, and create PRs for linear issues. agent friendly.项目地址https://gitcode.com/gh_mirrors/lin/linear-cli点击查看免费下载linear-cli 是一个让你不离开命令行就能管理 Linear 项目的工具列出 issue、开始处理任务、为 issue 创建 PR并且对 Agent 非常友好。它的一大亮点是结构化的退出码exit code设计——每条命令失败时都会返回不同的退出码脚本可以据此精准判断失败原因而无需费力解析 stderr 输出。本文带你完整读懂 linear-cli 的退出码体系0、1、2、3、4、5以及130各代表什么并给出实用的脚本判断技巧。退出码速查表一眼看懂命令为什么失败退出码含义常见场景建议动作0成功命令正常执行完成无需处理1一般运行时失败Linear 拒绝了输入、GraphQL 查询无效等检查命令参数与业务逻辑2用法错误参数拼写错误、缺少必填值请求尚未发出修正 flags 或参数值3未找到要查询的 issue、team、project 等实体不存在核对标识符如ENG-124认证失败没有可用的 API key或 key 被 Linear 拒绝运行linear auth login重新登录5服务不可用网络故障、超时、限流rate limit或服务器错误稍后重试注意 create/update 可能已生效130用户取消在提示或编辑器中按 Ctrl-C / Esc区分人为取消与真正失败这张速查表与官方文档 docs/usage.md 中 exit status 一节完全一致AI 技能文档 skills/linear-cli/SKILL.md 也有同样的 Exit Status 章节。各退出码深度解读0 和 1成功与兜底失败0表示成功自不待言。1是一个**兜底类general**退出码凡是不属于其他类别的运行时失败都归到它——例如 Linear 拒绝了你的输入、linear api发送了无效的 GraphQL 查询等。写脚本时1通常意味着需要人工看一眼输出。2用法错误——什么都没发到 Linear退出码2对应用法错误usage error参数拼写错误、缺少必填值等。关键点是这类错误在发送任何请求之前就被拒绝了所以2代表命令根本没执行可以放心修改参数后重试。3未找到——实体不存在当命令要查询的 issue、team、label、project 等 Linear 实体不存在时返回3not found。注意它只针对 Linear 侧的实体本地文件读不到之类的问题会归入1。4认证失败——重试没用4表示认证问题没有配置可用的 API key或 key 已被吊销、输错、权限不足。重试不会有帮助正确做法是重新登录linear auth login命令输出中通常还会附带提示行hint指引你执行上述命令。5服务不可用——可以重试但要小心5表示 Linear 暂时无法提供服务网络故障、请求超时、被限流或服务器内部错误。这类失败稍后重试通常能成功但有一个重要细节create 或 update 类操作可能实际上已经生效盲目重试可能产生副作用建议先查询确认状态再决定是否重试。130用户主动取消在交互提示或编辑器中按 Ctrl-C / Esc 取消时linear-cli 输出Canceled.并以130退出。在 CI 场景下用--no-input可以避免意外进入交互提示脚本里把130单列出来就不会把人为取消误报成程序故障。退出码背后的源码设计退出码逻辑集中在 crates/linear-cli/src/error.rs 中。Failure枚举定义了四种运行时失败类别每个类别通过exit_code()方法映射到具体数字General→1NotFound→3Auth→4Unavailable→5进程入口 crates/linear-cli/src/app.rs 中的main()函数在命令成功时返回0失败时先向 stderr 打印✗ message及提示再返回对应的退出码最终由 crates/linear-cli/src/main.rs 转换为进程的退出状态。此外还有两个小细节子进程的退出状态会原样透传例如收到 SIGTERM 后返回143如果下游读取方关闭了 stdoutbroken pipelinear-cli 会安静地以0退出避免linear issue list | head这类管道产生报错。批量命令的退出码取最需要优先处理的类别当你用批量命令如批量归档 issue一次处理多个目标、且部分失败时退出码如何定答案是取所有失败中最严重的一类。严重度排序为认证4 不可用5 一般失败1 未找到3。也就是说一次运行里如果既有 issue 不存在3、又触发了限流5最终退出码是5——认证问题最优先因为其他问题在它面前都无需处理。该逻辑由 error.rs 中的combine/fold方法实现批量执行的汇总与退出码判定见 crates/linear-cli/src/commands/bulk.rs。脚本实战用 case 精准分流失败原因下面是一个典型的 CI 脚本写法按退出码精准分流无需解析 stderrlinear issue view ENG-12 --no-input status$? case $status in 0) echo ok ;; 2) echo 参数错误先修命令再重试 ;; 3) echo issue 不存在核对标识符 ;; 4) echo 认证失败CI 中检查 API key 环境变量 ;; 5) echo Linear 不可用可重试但注意写操作可能已生效 ;; 130) echo 被取消 ;; *) echo 一般失败$status查看日志 ;; esac 几个实用建议自动化场景加--no-input缺值时直接失败而不是等待交互让退出码成为唯一信号。2与4不要重试前者改参数才有用后者重试无效。5可以指数退避重试但重试前先查询确认写操作是否已生效。把130视为跳过而非失败避免污染告警。总结记忆点内容核心四码1一般失败、3未找到、4认证、5不可用用法错误2请求未发出修参数即可取消130人为操作不算故障批量命令取最严重类别4513掌握 linear-cli 的退出码体系后你的脚本和 Agent 就能像读懂结构化 API一样读懂它不用正则解析报错文本一个$?判断即可决定下一步动作。更多命令用法可参考 docs/usage.mdAI 集成技巧见 skills/linear-cli/SKILL.md。赞分享【免费下载链接】linear-clilinear without leaving the command line: list, start, and create PRs for linear issues. agent friendly.项目地址https://gitcode.com/gh_mirrors/lin/linear-cli点击查看免费下载相关推荐XERJ autoindex 退出码全解0/1/2/3/4 各自意味着什么Agent 该如何分支处理XERJ autoindex 退出码全解0/1/2/3/4 各自意味着什么Agent 该如何分支处理 导读 xerj autoindex 用一套刻意区分Wren AI自然语言转 SQL零代码数据库查询不用排队等开发Wren AI自然语言转 SQL零代码数据库查询不用排队等开发 业务同事想查个销售额排行自己不会写 SQL只能找开发排队提需求。Wren AI 是一个开人工智能AI 应用大模型RAG数据分析CLI如何用 --exit-status 与 halt_error 控制 jq 退出码以支持脚本自动化判断如何用 exit status 与 halt_error 控制 jq 退出码以支持脚本自动化判断 在 Shell 脚本里调用 jq 做数据校验时常见的问题是CLI数据分析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。