一、介绍

cobra库是go最罕用的命令行库。
开原地址:https://github.com/spf13/cobra

二、疾速应用

1、新建目录

mkdir cobratest  &&  cd cobratest

2、初始化go mod

go mod init sample/cobratest

此时咱们关上go.mod 第一行写了咱们的包名为 sample/cobratest

module sample/cobratestgo 1.14require (    github.com/inconshreveable/mousetrap v1.0.1 // indirect    github.com/spf13/cobra v1.5.0 // indirect)

3、装置cobra

go get -u github.com/spf13/cobra@latest

4、cobra初始化

cobra init --pkg-name sample/cobratest

咱们关上命令行应用tree命令看一下文件目录

➜  cobratest git:(master) ✗ tree.├── LICENSE├── cmd│   └── root.go├── go.mod├── go.sum└── main.go1 directory, 5 files

5、新建一个子命令

cobra add cronMyFirst


咱们会发现在 cmd目录同级root.go 生成了一个新的文件 cronMyFirst.go
关上 cronMyFirst.go文件

package cmdimport (    "fmt"    "github.com/spf13/cobra")// cronMyFirstCmd represents the cronMyFirst commandvar cronMyFirstCmd = &cobra.Command{    Use:   "cronMyFirst",    Short: "A brief description of your command",    Long: `A longer description that spans multiple lines and likely contains examplesand usage of using your command. For example:Cobra is a CLI library for Go that empowers applications.This application is a tool to generate the needed filesto quickly create a Cobra application.`,    Run: func(cmd *cobra.Command, args []string) {        fmt.Println("cronMyFirst called")    },}func init() {    rootCmd.AddCommand(cronMyFirstCmd)}

下面有一个 Use: "cronMyFirst", 也就是咱们应用的时候 只有执行 cronMyFirst就行了。

6、应用一下 cronMyFirst

 go run ./main.go cronMyFirst

输入:

cronMyFirst called

应用胜利,当然咱们也能够编译后再应用,如下:

 go build -o cobratest ./main.go ./cobratest cronMyFirst

输入如下:

cronMyFirst called