尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Go 用 cobra / viper 写 CLI 工具:从单文件到企业级

发布时间:2026/9/29 6:51:18

资讯中心
01
ARTICLE

Go 用 cobra / viper 写 CLI 工具:从单文件到企业级

Go 用 cobra / viper 写 CLI 工具:从单文件到企业级
Go 用 cobra / viper 写 CLI 工具从单文件到企业级Go 后端工程师也常用 CLI 工具从 kubectl 到 drpc-toolsCLI 框架的基石是 cobra viper。本文从 0 到 1 教你看示例写 CLI。一、最简单 cobragoinstallgithub.com/spf13/cobra-clilatest cobra init mycli二、main.gopackagemainfuncmain(){cmd.Execute()}三、cmd/root.goimportgithub.com/spf13/cobravarrootCmdcobra.Command{Use:mycli,Short:工具,Run:func(cmd*cobra.Command,args[]string){fmt.Println(mycli)},}funcExecute(){iferr:rootCmd.Execute();err!nil{os.Exit(1)}}四、添加子命令varlistCmdcobra.Command{Use:list,Run:func(cmd*cobra.Command,args[]string){fmt.Println(list)},}funcinit(){rootCmd.AddCommand(listCmd)}五、flagsvarverboseboolfuncinit(){listCmd.Flags().BoolVarP(verbose,verbose,v,false,verbose)}六、viper 集成importgithub.com/spf13/viperfuncinit(){viper.AddConfigPath(.)viper.SetConfigName(config)viper.SetEnvPrefix(MYCLI)viper.AutomaticEnv()}funccmd(){host:viper.GetString(database.host)}七、user promptreader:bufio.NewReader(os.Stdin)name,_:reader.ReadString(\n)八、TUI 进阶bubbleteaimportgithub.com/charmbracelet/bubbleteatypeModelstruct{}func(m Model)Init()tea.Cmd{returnnil}func(m Model)Update(msg tea.Msg)(tea.Model,tea.Cmd){returnm,nil}func(m Model)View()string{returnhello}funcmain(){tea.NewProgram(Model{}).Run()}九、发布 CLI 工具go build-omycli分发HomeBrewScoopWindowsNix十、踩坑清单viper.Get 永远返回 stringnil 时 “”注意类型subcommand 自定义 ValidArgsSet影响 zsh 自动补全panic with recoverCLI 是单进程崩了就退出十一、生产实战DRPC CLIvarrpcCmdcobra.Command{Use:rpc,Run:func(cmd*cobra.Command,args[]string){url:viper.GetString(rpc.url)invoke(url)},}十二、Module 复用// internal/clifuncAddCommonFlags(c*cobra.Command){c.Flags().StringP(config,c,config.yaml,config path)}十三、测试importgithub.com/spf13/cobracmd.SetArgs([]string{list})cmd.Execute()十四、未来AI CLI Agent类似 OpenAI Operator、Anthropic Claude Code 都用 cobra-like 模式智能 CLI 工具会从命令推断意图。十五、总结与展望cobra viper 是 Go CLI 的标配。掌握它能快速开发 kubectl 系列级别的工具。未来Go Rust CLI 工具继续流行跨语言协作工具链进一步简化。十六、参考文献cobra 仓库viper 仓库
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。