Golang命令行库-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

前言

有时候我们需要安装公司的软件,或者做个类似 node_explorer 的客户端采集程序,当 ./xx -h 的时候可以看到很多的命令行参数。Golang命令行参数我们可以通过内置的库 os.args 或者 flag库去实现,但是功能较弱。如果使用第三库 会更加功能丰富。

第三方库 cli库

##
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)
    }
}

Flag增加选项参数,可加默认值

package main

import (
	"log"
	"os"

	"github.com/urfave/cli/v2"
)

func main() {
	app := &cli.App
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: go