cobra

命令库--github.com/spf13/cobra

cobra既是一个用于创建强大现代CLI应用程序的库,也是一个生成应用程序和命令文件的程序。cobra被用在很多go语言的项目中,比如 Kubernetes、Docker、Istio、ETCD、Hugo、Github CLI等等

eg1:指定名称设置参数

./main --version 1.0 --name jeff

eg2:直接写参数,按照位置取参数

./main 1.0 jeff

package main

import (
	"fmt"
	"github.com/spf13/cobra"
)

func main() {
	rootCmd := cobra.Command{
		// 命令的名称
		Use: "test",
		// 剪短介绍
		Short: "这是一个我的私有命令",
		// 详细介绍
		Long: "自定义私有命令",
		// 普通运行,如果需要返回error要使用RUNE
		Run: start,
	}

	// 增加一个flag 参数
	// flag参数的名称,示例值,flag参数解释
	rootCmd.PersistentFlags().String("version", "", "输入一些东西")
	// 再增加一个flag 参数
	rootCmd.Flags().String("name", "", "输入一些东西")
	if err := rootCmd.Execute(); err != nil {
		fmt.Println("这里有错误", err)
	}
}

func start(cmd *cobra.Command, args []string) {
	fmt.Println("这是一条myOrder命令的反馈")
	// 读取第一个指定名称参数
	getString, _ := cmd.Flags().GetString("version")
	fmt.Println(getString)
	// 读取第二个指定名称参数
	getString, _ = cmd.Flags().GetString("name")
	fmt.Println(getString)

	fmt.Println("=========")
	fmt.Println("args:", args)
	fmt.Println(len(args))
	fmt.Println(args[0])
	fmt.Println(args[1])
}
posted @ 2023-10-06 21:09  Jeff的技术栈  阅读(42)  评论(0编辑  收藏  举报
回顶部