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 命令行使用
相关推荐
To_OC19 分钟前
手写 AI 编程 Agent 的命令执行工具:我被 child_process 坑出来的实战经验
后端·node.js·agent
逝水无殇3 小时前
C# 异常处理详解
开发语言·后端·c#
考虑考虑5 小时前
Sentinel安装
java·后端·微服务
IT_陈寒5 小时前
SpringBoot自动配置失灵?你可能忘了这个关键注解
前端·人工智能·后端
碎碎念_4925 小时前
SpringBoot + Vue 前后端分离从 0 到 1 完整环境配置流程
vue.js·spring boot·后端
灯澜忆梦5 小时前
GO---可见性规则
开发语言·golang
逝水无殇5 小时前
C# 文件的输入与输出详解
开发语言·数据库·后端·c#
YIAN6 小时前
从手写 Agent 工具到 MCP 协议:一文搞懂大模型跨进程跨语言工具调用
后端·agent·mcp
小兔崽子去哪了6 小时前
Docker 删除镜像后磁盘空间没有释放?
后端·docker·容器
高明珠7 小时前
麒麟 V10 SP1 排查实录:ttyS5 每 10 秒莫名收到一批报文,元凶是 eGTouchD
后端