前言
有时候我们需要安装公司的软件,或者做个类似 node_explorer 的客户端采集程序,当 ./xx -h 的时候可以看到很多的命令行参数。Golang命令行参数我们可以通过内置的库 os.args 或者 flag库去实现,但是功能较弱。如果使用第三库 会更加功能丰富。
第三方库 cli库
##
https://github.com/urfave/cli
使用示例
接受普通的程序传参
package mainimport ("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)}
}
Flag增加选项参数
,可加默认值
package mainimport ("log""os""github.com/urfave/cli/v2"
)func main() {app := &cli.App