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])
}
选择了IT,必定终身学习