经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Go语言 » 查看文章
使用Golang快速构建出命令行应用程序
来源:jb51  时间:2023/2/27 9:41:58  对本文有异议

在日常开发中,大家对命令行工具(CLI)想必特别熟悉了,如果说你不知道命令工具,那你可能是个假开发。每天都会使用大量的命令行工具,例如最常用的Git、Go、Docker等。

不管是做技术开发还是业务开发,都会有开发命令行程序的场景。例如如果是开发框架,会开发一个命令行工具帮助使用者快速生成项目结构;如果是开发一个定时任务程序,会开发一个命令行工具来启动这个任务。本文就介绍两个专门用来开发命令行应用程序的库。

urfave/cli

urfave/cli是一个简单、快速、有趣的包,专门用于构建命令行应用程序。其目标是使开发人员能够以一种富有表现力的方式编写快速且可分发的命令行应用程序。看一个简单的例子:

  1. package main
  2. import (
  3. "fmt"
  4. "log"
  5. "os"
  6. "github.com/urfave/cli/v2"
  7. )
  8. funcmain() {
  9. app := &cli.App{
  10. Name: "blog",
  11. Usage: "显示路多辛blog欢迎语",
  12. Action: func(*cli.Context)error {
  13. fmt.Println("欢迎来到路多辛的blog,能帮助到大家是我最大的快乐!")
  14. returnnil
  15. },
  16. }
  17. if err := app.Run(os.Args); err != nil {
  18. log.Fatal(err)
  19. }
  20. }

编译后,执行一下查看帮助命令看下效果

  1. $ ./main -h
  2. NAME:
  3. blog - 显示路多辛blog欢迎语
  4. USAGE:
  5. blog [global options] command [command options] [arguments...]
  6. COMMANDS:
  7. help, h Shows a list of commands or helpfor one command
  8. GLOBAL OPTIONS:
  9. --help, -h show help

执行下blog命令看下效果

  1. $ ./main blog
  2. 欢迎来到路多辛的blog,能帮助到大家是我最大的快乐!

更多使用方法可以参考官方文档 https://cli.urfave.org/

spf13/cobra

这个库是Go语言负责人主要参与开发的,很多知名项目的命令行工具都是使用这个库开发的,例如Kubernetes、Istio、Docker、Etcd、GitHubCLI等等。看一个简单的例子:

  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "github.com/spf13/cobra"
  6. )
  7. funcmain() {
  8. Execute()
  9. }
  10. funcExecute() {
  11. var rootCmd = &cobra.Command{
  12. Use: "blog",
  13. Short: "显示路多辛blog欢迎语",
  14. Long: "显示路多辛blog欢迎语,介绍blog的整体情况",
  15. Run: func(cmd *cobra.Command, args []string) {
  16. fmt.Println("欢迎来到路多辛的blog,能帮助到大家是我最大的快乐!")
  17. },
  18. }
  19. if err := rootCmd.Execute(); err != nil {
  20. fmt.Fprintln(os.Stderr, err)
  21. os.Exit(1)
  22. }
  23. }

编译后,执行一下查看帮助命令看下效果:

  1. $./main -h 显示路多辛blog欢迎语,介绍blog的整体情况Usage:blog[flags]Flags:-h,--help help for blog

执行下blog命令看下效果:

  1. $ ./main blog
  2. 欢迎来到路多辛的blog,能帮助到大家是我最大的快乐!

更多使用方法可以参考官方文档

https://github.com/spf13/cobra/blob/main/user_guide.md

到此这篇关于使用Golang快速构建出命令行应用程序的文章就介绍到这了,更多相关Golang命令行应用程序内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号