Cobra 命令行框架学习

Cobra 是一个 Go 语言开发的命令行(CLI)框架,它提供了简洁、灵活且强大的方式来创建命令行程序。它包含一个用于创建命令行程序的库(Cobra 库),以及一个用于快速生成基于 Cobra 库的命令行程序工具(Cobra 命令)。Cobra 是由 Go 团队成员 spf13 为 Hugo 项目创建的,并已被许多流行的 Go 项目所采用,如 KubernetesHelmDocker (distribution)、Etcd 等。
万字长文——Go 语言现代命令行框架 Cobra 详解 - 知乎
Go 命令行参数解析工具 pflag 使用 | 江湖十年 | 学而不思则罔,思而不学则殆。

概念

Cobra 建立在命令参数标志这三个结构之上。要使用 Cobra 编写一个命令行程序,需要明确这三个概念。

  • 命令(COMMAND):命令表示要执行的操作。
  • 参数(ARG):是命令的参数,一般用来表示操作的对象。
  • 标志(FLAG):是命令的修饰,可以调整操作的行为。

一个好的命令行程序在使用时读起来像句子,用户会自然的理解并知道如何使用该程序。
要编写一个好的命令行程序,需要遵循的模式是:
APPNAME VERB NOUN --ADJECTIVE 或 APPNAME COMMAND ARG --FLAG
在这里 VERB 代表动词,NOUN 代表名词,ADJECTIVE 代表形容词。