接着,我们使用rootCmd.PersistentFlags()方法来为根命令添加全局参数,并分别将它们绑定到变量name和age上。类似地,在子命令中也可以使用.PersistentFlags()方法来定义自己的全局参数。 最后,我们通过调用.AddCommand()方法将子命令添加到根命令中,并使用.Execute()方法来执行整个命令行程序。 需要注意的是,cobra库提供...
cobrahttps://github.com/spf13/cobra是 golang 中一个非常好用的命令开发库。 但是绑定flag参数的时候略微有点繁琐, 不但有多少个参数就需要写多少行绑定代码, 而且参数定义和描述也是分开的, 非常的不直观。 123456 funcinit() {rootCmd.Flags().StringVarP(&stu.Name,"name","","zhangsanfeng","student...
cobra https://github.com/spf13/cobra 是 golang 中一个非常好用的 命令 开发库。 但是绑定 flag 参数的时候略微有点繁琐, 不但有多少个参数就需要写多少行绑定代码, 而且参数定义和描述也是分开的, 非常的不直观。 代码语言:javascript 代码运行次数:0 运行 AI代码解释 func init() { rootCmd.Flags()....
1、概述 在golang中有很多方法来处理命令行参数,简单情况下可以不使用任何库,直接使用os.Args;但是golang标准库提供了flag包来处理命令行参数;还有第三方提供的处理命令行参数的库cobra、cli等。 2、os.Args 如果你只是简单的想要获取命令行参数,可以像下面的代码示例一样使用os.Args来获取命令行参数。 AI检测代码...
相比起标准库里的flag包,cobra强大了很多。官网列出了cobra的一大堆优点:易用的subcommand模式(即嵌套命令或子命令) 强大的flags支持(参考标准库flagSet) 支持global、local、cascading级别的flag设置 错误时的智能提示 自动生成的、美观的help信息,并默认支持--help和-h打印help信息 提供命令自动补全功能(bash,...
为了确保命令行上的子命令、位置参数和 Flags 能够被准确的解析,cobra 总是执行根命令的 ExecuteC() 方法,其实现为在 ExecuteC() 方法中找到根命令,然后执行根命令的 ExecuteC() 方法,其逻辑如下: //ExecuteC executes the command.func (c *Command) ExecuteC() (cmd *Command, err error) {//Regardless...
cobra默认只解析当前命令的local flags,通过开启Command.TraverseChildren参数,可以解析每个命令的local flags。 command:=cobra.Command{Use:"print [OPTIONS] [COMMANDS]", TraverseChildren: true,} 4. Bind Flags with Config 可以通过viper来绑定flags。
golang命令行生成库cobra Cobra(眼镜蛇)是一个库,其提供简单的接口来创建强大现代的CLI接口,类似于git或者go工具。同时,它也是一个应用,用来生成个人应用框架,从而开发以Cobra为基础的应用。Docker源码中使用了Cobra。 Cobra基于三个基本概念commands,arguments和flags。其中commands代表行为,arguments代表数值,flags代表对...
cobra 是 go 语言的一个库,可以用于编写命令行工具。通常我们可以看到git pull 、docker container start 、apt install 等等这样命令,都可以很容易用corba来实现,另外,go 语言是很容易编译成一个二进制文件,本文将实现一个简单的命令行工具。 具体写一个例子, 设计一个命令叫blog, 有四个子命令 blog new [post...
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" //项目名称改成自己的 ...