网淘吧来吧,欢迎您!

Create Cli

2026-03-30 新闻来源:网淘吧 围观:7
电脑广告
手机广告

创建CLI

设计CLI的交互界面(语法+行为),以人为先,同时便于脚本调用。

首先执行

快速澄清

询问,如果用户不确定,则使用最佳猜测的默认值继续:

Create Cli

  • 命令名称 + 一句话说明目的。
  • 主要用户:人类、脚本,或两者兼顾。
  • 输入来源:参数 vs 标准输入;文件 vs URL;机密信息(切勿通过标志传递)。
  • 输出约定:人类可读文本,--json--plain退出码。
  • 交互性:是否允许提示?需要--no-input?针对破坏性操作需要确认吗?
  • 配置模型:标志/环境变量/配置文件;优先级;XDG 与仓库本地配置。
  • 平台/运行时约束:macOS/Linux/Windows;单一二进制文件与运行时。

交付物(输出内容)

设计 CLI 时,生成一份用户可实现的紧凑规范:

  • 命令树 + 使用说明概要。
  • 参数/标志表(类型、默认值、必需/可选、示例)。
  • 子命令语义(每个命令的功能;幂等性;状态变更)。
  • 输出规则:标准输出 vs 标准错误;TTY 检测;--json/--plain--quiet/--verbose
  • 错误与退出码映射(主要失败模式)。
  • 安全规则:--dry-run,确认提示,--force--no-input
  • 配置/环境规则 + 优先级(命令行标志 > 环境变量 > 项目配置 > 用户配置 > 系统配置)。
  • Shell 自动补全说明(如适用):安装/可发现性;生成命令或捆绑脚本。
  • 5–10 个调用示例(常见流程;包含管道/标准输入示例)。

默认约定(除非用户另行指定)

  • -h/--help始终显示帮助信息并忽略其他参数。
  • --version将版本信息打印到标准输出。
  • 主要数据输出到标准输出;诊断/错误信息输出到标准错误。
  • 添加--json以输出机器可读格式;考虑使用--plain以输出稳定的基于行的文本。
  • 仅在标准输入是 TTY 时进行提示;--no-input禁用提示。
  • 破坏性操作:交互式需要确认 + 非交互式需要--force或显式的--confirm=...
  • 遵循NO_COLORTERM=dumb环境变量;提供--no-color选项。
  • 处理 Ctrl-C:快速退出;有限的清理;在可能的情况下保持仅崩溃模式。

模板(复制到你的回答中)

CLI 规范框架

填写以下部分,删除任何不相关的内容:

  1. 名称mycmd
  2. 一句话描述...
  3. 用法:
    • mycmd [全局标志] <子命令> [参数]
  4. 子命令:
    • mycmd init ...
    • mycmd run ...
  5. 全局标志:
    • -h, --help
    • --version
    • -q, --quiet/-v, --verbose(确切定义)
    • --json/--plain(如适用)
  6. I/O 约定:
    • 标准输出:
    • 标准错误:
  7. 退出码:
    • 0成功
    • 1一般性失败
    • 2使用无效(解析/验证)
    • (仅在确实有用时添加命令特定的代码)
  8. 环境/配置
    • 环境变量:
    • 配置文件路径 + 优先级:
  9. 示例

备注

  • 仅在询问时才建议使用解析库(特定于语言的);否则保持此技能与语言无关。
  • 如果请求是“设计参数”,请勿偏离至实现细节。

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部
上一篇:Linear 下一篇:Codebase Documenter

相关文章

您是本站第320398名访客 今日有97篇新文章/评论