接着,我们使用rootCmd.PersistentFlags()方法来为根命令添加全局参数,并分别将它们绑定到变量name和age上。类似地,在子命令中也可以使用.PersistentFlags()方法来定义自己的全局参数。 最后,我们通过调用.AddCommand()方法将子命令添加到根命令中,并使用.Execute()方法来执行整个命令行程序。 需要注意的是,cobra库提供...
// 绑定 cobrautils.BindFlags(rootCmd, &stu) _ = rootCmd.Execute() // 打印结果 fmt.Printf("%+v", stu) 完整Demo 代码语言:javascript 代码运行次数:0 复制Cloud Studio 代码运行 package main import ( "fmt" "github.com/go-jarvis/cobrautils" "github.com/spf13/cobra" ) type student struct...
to quickly create a Cobra application.`,})// Execute executes the root command.funcExecute()error{returnrootCmd.Execute()}funcinit(){cobra.OnInitialize(initConfig)rootCmd.PersistentFlags().StringVar(&cfgFile,"config","","config file (default is $HOME/.cobra.yaml)")rootCmd.PersistentFlags()....
// cmd/add.go// addCmdRun:func(cmd *cobra.Command, args []string){// 获取 float 标识符的值,默认为 falsefstatus, _ := cmd.Flags().GetBool("float")iffstatus {// 如果为 true,则调用 floatAdd 函数floatAdd(args) }else{ intAdd(args) } }, 现在重新编译构建 CLI 应用,按照如下方式执行...
Cobra既是一个用来创建强大的现代CLI命令行的golang库,也是一个生成程序应用和命令行文件的程序。下面是Cobra使用的一个演示: Cobra提供的功能 简易的子命令行模式,如 app server, app fetch等等 完全兼容posix命令行模式 嵌套子命令subcommand 支持全局,局部,串联flags ...
cobra默认只解析当前命令的local flags,通过开启Command.TraverseChildren参数,可以解析每个命令的local flags。 command:=cobra.Command{Use:"print [OPTIONS] [COMMANDS]", TraverseChildren: true,} 4. Bind Flags with Config 可以通过viper来绑定flags。
Run: func(cmd *cobra.Command, args []string) { name, _ := cmd.Flags().GetString("name") age, _ := cmd.Flags().GetInt("age") fmt.Printf("Name: %s, Age: %d\n", name, age) }, } func init() { rootCmd.Flags().StringP("name", "n", "", "Your name") ...
cobrahttps://github.com/spf13/cobra是 golang 中一个非常好用的命令开发库。 但是绑定flag参数的时候略微有点繁琐, 不但有多少个参数就需要写多少行绑定代码, 而且参数定义和描述也是分开的, 非常的不直观。 123456 funcinit() {rootCmd.Flags().StringVarP(&stu.Name,"name","","zhangsanfeng","student...
Cobra 是一个用来创建命令行的 golang 库,同时也是一个用于生成应用和命令行文件的程序。 1.1 概念 Cobra 结构由三部分组成:命令 (commands)、参数 (arguments)、标志 (flags)。基本模型如下: APPNAME VERB NOUN –ADJECTIVE 或者 APPNAME COMMAND ARG –FLAG ...
3、flags //表示对行为的改变 1. 2. 3. 4. 5. 6. 7. 8. 2、环境安装 go get -u github.com/spf13/cobra/cobra 1. 3、命令行工具初始化 cobra init tools //初始化目录 1. 覆盖配置 vi main.go package main import "go_code/tools/cmd" //项目名称改成自己的 ...