Golang 插件cobra使用总结

Cobra既是用于创建强大的现代CLI应用程序的库,也是用于生成应用程序和命令文件的程序。

1.启用方式:

go run main.go [-flag1 {参数1} ] [-flag2 {参数2} ]
例如:

go run main.go push -t "123"

2.主要编程模式

var rootCmd = &cobra.Command{
	Use:   "rootCmd",
	Short: "rootCmd",
	Long:  "rootCmd xx xx xx",
}
func init() {
	rootCmd.AddCommand(newXCommand())
}
//添加命令
func newXCommand(*cobra.Command) {
	var podName string
	s := &cobra.Command{
			Use:   "x",
			Short: "v",
			Run: func(cmd *cobra.Command, args []string) {
				fmt.Println(ctx.Version)
			},
		}
	//添加参数
	s.Flags().StringVarP(&podName, "pod", "p", options.PodName, "Pod name")
}

3.常用方法总结

定义string 的参数,参数为参数名以及默认值和使用方式。

func (f *FlagSet) String(name string, value string, usage string) *string

定义string 的参数,参数为参数名、简写方式以及默认值和使用方式。

func (f *FlagSet) StringP(name, shorthand string, value string, usage string) *string

定义string型数组的参数,参数为参数承接的变量,参数名,默认值和用法说明,数组的输入按照,「逗号」隔开

func (f *FlagSet) StringSliceVar(p *[]string, name string, value []string, usage string) *string

定义string型数组的参数,参数为参数承接的变量,参数名,简写参数,默认值和用法说明,数组的输入按照,「逗号」隔开

func (f *FlagSet) StringSliceVarP(p *[]string, name, shorthand string, value []string, usage string)

输入格式示例:

   --ss="v1,v2" -ss="v3"

结果为:

[]string{"v1", "v2", "v3"}

总结起来就是,带Var的都是提供一个变量的地址用于承接控制台输入的参数的参数值,而带P的方法则是可以比不带P的多设置一个简写的参数名

你可能感兴趣的:(Golang)