引言

urfave/cli是一个简略、疾速、乏味的包,用于在 Go 中构建命令行应用程序。指标是使开发人员可能以富裕表现力的形式编写疾速且可散发的命令行应用程序。

我的项目地址

我的项目地址: https://github.com/urfave/cli [star:19k]

应用场景

  • 构建命令行应用程序

装置

go get github.com/urfave/cli/v2

罕用办法

  • Run 运行

例子

作为一个命令行工具,urfave/cli 足够好用,你能够自定义参数、版本、阐明......

咱们来个 ,参数阐明可看备注。

package mainimport (    "fmt"    "log"    "os"    "github.com/urfave/cli/v2")func main() {    var language string    app := &cli.App{        Name:    "godaily day003",      // cli name        Version: "v13",                 // cli version        Usage:   "godaily day003 test", // usage        Flags: []cli.Flag{ // 承受的 flag            &cli.StringFlag{ // string                Name:        "lang",        // flag 名称                Aliases:     []string{"l"}, // 别名                Value:       "english",     // 默认值                Usage:       "language for the greeting",                Destination: &language, // 指定地址,如果没有能够通过 *cli.Context 的 GetString 获取                Required:    true,      // flag 必须设置            },        },        Action: func(c *cli.Context) error {            name := "who"            if c.NArg() > 0 {                name = c.Args().Get(0)            }            if language == "chinese" {                fmt.Println("你好啊", name)            } else {                fmt.Println("Hello", name)            }            return nil        },    }    if err := app.Run(os.Args); err != nil {        log.Fatal(err)    }}

运行一下

go run main.go --lang chinese xiaoou

除此之外,还反对sub 命令等等。小欧工作中很多我的项目以此为源起的。

更多实例可见: https://cli.urfave.org/v2/get...

实例源码

https://github.com/oscome/god...

tips

  1. 参数较多时须要留神,例如配合 go-micro 的时候,参数会有重合,可能会产生影响。