cobra https://github.com/spf13/cobra 是 golang 中一个非常好用的 命令 开发库。 但是绑定 flag 参数的时候略微有点繁琐, 不但有多少个参数就需要写多少行绑定代码, 而且参数定义和描述也是分开的, 非常的不直观。 代码语言:javascript 代码运行次数:0 运行 AI代码解释 func init() { r
Cobra结构由三部分组成:命令 (commands)、参数 (arguments)、标志 (flags)。 基本模型如下: APPNAME VERB NOUN –ADJECTIVE APPNAME COMMAND ARG –FLAG 如果不是太理解的话,没关系,我们先看个例子: hugoserver --port=1313 hugo:根命令 server:子命令 –port:标志 再看个带有参数的例子: gitcloneURL --bare...
接下来我们安装 Cobra。 1.2 安装 安装很简单: go get -u github.com/spf13/cobra@latest 下载完成后安装 cobra 工具,在 $GOPATH/bin 会生成可执行文件: go install github.com/spf13/cobra-cli@latest 将生成的 cobra 工具放到 $PATH 目录下,可以看到: [root@localhost ~]# cp -a $GOPATH/bin/cobra ...
cobra默认只解析当前命令的local flags,通过开启Command.TraverseChildren参数,可以解析每个命令的local flags。 command:=cobra.Command{Use:"print [OPTIONS] [COMMANDS]", TraverseChildren: true,} 4. Bind Flags with Config 可以通过viper来绑定flags。 var author string func init(){rootCmd.PersistentFlags()....
cobrahttps://github.com/spf13/cobra是 golang 中一个非常好用的命令开发库。 但是绑定flag参数的时候略微有点繁琐, 不但有多少个参数就需要写多少行绑定代码, 而且参数定义和描述也是分开的, 非常的不直观。 123456 funcinit() {rootCmd.Flags().StringVarP(&stu.Name,"name","","zhangsanfeng","student...
go get -v github.com/spf13/cobra/ 生成命令 cobra init programName cobra add subcmd 生成flags cmdStructName.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.demo.yaml)") cmdStructName.Flags().StringVarP(&name, "name", "n", "", "person's name"...
需要注意的是,cobra库提供了丰富的功能和选项,包括子命令分组、参数验证、自动生成帮助信息等。 二,flags定义,配置绑定及flags检查 在golang中,我们可以使用flag包来定义和处理命令行参数。该包提供了一系列函数和结构体,使我们能够轻松地定义并处理命令行参数。
Cobra 是构建在命令、参数和标识符之上的: Commands表示执行动作 Args就是执行参数 Flags是这些动作的标识符 基本的执行命令如下所示: $APPNAME Command Args --Flags#或者$APPNAME Command --Flags Args 比如我们平时使用的一些命令行工具: git clone URL -bare ...
Cobra既是一个用来创建强大的现代CLI命令行的golang库,也是一个生成程序应用和命令行文件的程序。下面是Cobra使用的一个演示: Cobra提供的功能 简易的子命令行模式,如 app server, app fetch等等 完全兼容posix命令行模式 嵌套子命令subcommand 支持全局,局部,串联flags ...
3、flags //表示对行为的改变 1. 2. 3. 4. 5. 6. 7. 8. 2、环境安装 go get -u /spf13/cobra/cobra 1. 3、命令行工具初始化 cobra init tools //初始化目录 1. 覆盖配置 vi main.go package main import "go_code/tools/cmd" //项目名称改成自己的 ...