引言
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
- 参数较多时须要留神,例如配合 go-micro 的时候,参数会有重合,可能会产生影响。