go之命令行工具urfave-cli

一、urfave/cli

urfave/cli 是一个声明性的、简单、快速且有趣的包,用于用 Go 构建命令行工具。

二、快速使用

2.1 引入依赖
bash 复制代码
go get github.com/urfave/cli/v2
2.2 demo
Go 复制代码
package main

import (
    "fmt"
    "log"
    "os"

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

func main() {
	// 创建 urfave app 实例
	app := &cli.App{
		// 设置命令
		Commands: []*cli.Command{
			{
				Name:    "add",
				Aliases: []string{"a"},
				Usage:   "add a task to the list",
				Flags: []cli.Flag{
					&cli.StringFlag{
						Name:  "type",
						Value: "daily",
						Usage: "add eat --type=daily",
					},
				},
				Action: func(cCtx *cli.Context) error {
					fmt.Println("added task: ", cCtx.Args().First(), "type=", cCtx.String("type"))
					return nil
				},
			},
		},
	}
	// 启动命令
	if err := app.Run(os.Args); err != nil {
		log.Fatal(err)
	}
}
2.3 命令行使用
相关推荐
非优秀程序员2 小时前
第07章 孙德良的阳谋|《互联网产品恩仇录》
javascript·后端
非优秀程序员2 小时前
第06章 浙江帮的内战|《互联网产品恩仇录》
后端
非优秀程序员2 小时前
第08章 马云的反击|《互联网产品恩仇录》
后端
非优秀程序员2 小时前
题记|《互联网产品恩仇录》
后端·程序员·创业
Gopher_HBo5 小时前
Go CPU 剖析的"地基":信号、CAS、写屏障、无锁环形缓冲
后端
panbook6 小时前
从0到1实现一个分布式时序数据库(二):写入成功之后,如何用 WAL 找回数据
后端
Swot6 小时前
上传一张 4MB 图片,我先后撞上了三层请求体限制
后端
IT_陈寒6 小时前
Vite的HMR把我整不会了:一个生产环境的热更新坑
前端·人工智能·后端
OLRainM6 小时前
实习复盘:大模型网关渠道质量评分实战(二)—— 报错了到底算谁的锅?流式归因与 Token 补账踩过的 8 个真坑
后端
梦想恒远6 小时前
Spring Boot + LangChain4j 统计 token 成本:ChatModelListener 实测与单价口径
spring boot·后端