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的多设置一个简写的参数名

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值