有时候我们需要安装公司的软件,或者做个类似 node_explorer 的客户端采集程序,当 ./xx -h 的时候可以看到很多的命令行参数。Golang命令行参数我们可以通过内置的库 os.args 或者 flag库去实现,但是功能较弱。如果使用第三库 会更加功能丰富。
- ##
- https://github.com/urfave/cli
- package main
-
- import (
- "fmt"
- "log"
- "os"
-
- "github.com/urfave/cli/v2"
- )
-
- /*
- 测试L go run .\t1.go knight
- */
-
- func main() {
- app := &cli.App{
- Action: func(cCtx *cli.Context) error {
- fmt.Printf("Hello %q", cCtx.Args().Get(0))
- return nil
- },
- }
-
- if err := app.Run(os.Args); err != nil {
- log.Fatal(err)
- }
- }
选项参数
,可加默认值- package main
-
- import (
- "log"
- "os"
-
- "github.com/urfave/cli/v2"
- )
-
- func main() {
- app := &cli.App