golang进阶(二)——cobra更实用的命令行
来源:互联网 发布:docker java web 编辑:程序博客网 时间:2024/05/16 15:18
+++
title=”golang进阶(二)——cobra更实用的命令行”
date=”2017-10-11”
tags=[“golang”,”glide”,”docker”]
categories=[“资源管理”]
description=”golang自身带的命令行包,各种case,有代码洁癖的人看着就令人头大”
+++
cobra是个非常不错的命令行包,docker,hugo都在使用
基命令
首先创建一个基命令
package cmdimport ( "github.com/spf13/cobra")var RootCmd = &cobra.Command{ Use: "gonne", Run: func(cmd *cobra.Command, args []string) { println("gonne is my ai friend") },}
使用命令
在main方法中调用命令,恩,就这么简单
package mainimport ( "fmt" "os" "lastsweetop.com/cmd")func main() { if err := cmd.RootCmd.Execute(); err != nil { fmt.Println(err) os.Exit(1) }}
在命令行输入 gonne
,就会执行基命令中Run
方法
appletekiMacBook-Pro:src apple$ gonnegonne is my ai friend
子命令
在基命令上增加子命令也相当简单,根本无需在基命令和main方法中写任何代码,只需新建一个go文件,多个子命令间也是相互独立的,多么优雅的代码,告别各种case
package cmdimport "github.com/spf13/cobra"func init() { RootCmd.AddCommand(versionCmd)}var versionCmd = &cobra.Command{ Use: "version", Short: "Print the version number of Gonne", Run: func(cmd *cobra.Command, args []string) { println("gonne version is 0.0.1") },}
效果如下:
appletekiMacBook-Pro:src apple$ gonne versiongonne version is 0.0.1
其他
还有关于参数的问题,我们下一篇和怎么样做一个后台进程一起讲
阅读全文
1 0
- golang进阶(二)——cobra更实用的命令行
- golang命令行库cobra的使用
- golang进阶(一)——glide的使用手册
- Golang基本工具的安装以及cobra的安装
- Cobra —— super dis
- Cobra —— "下一步"与运行时栈的可视化
- Golang:Cobra安装与使用
- golang进阶(四)——路由mux的最佳实践
- golang进阶(五)——restful开发的json处理
- Cobra —— 可视化Python虚拟机
- Cobra——client与server通信
- Cobra —— 迈进Ajax时代
- Cobra —— 用于显示当前执行字节码的GUI部件
- Cobra —— 字节码指令的动态定位与展示
- Cobra —— 编译结果数据与名字空间数据的展示
- 实用Linux命令行 —— 进制的转换
- 比赛分组(二)——更通用的解法
- golang获取命令行的参数
- EJB的优势和使用场景
- 【转】数据库基本知识:(一)导论
- HTML meta refresh 刷新与跳转(重定向)页面
- Ubuntu下图形界面SVN客户端-RabbitVCS的安装
- 进程管理
- golang进阶(二)——cobra更实用的命令行
- QRCode.js 使用js二维码 生成器
- GitChat · 大数据 | 一步一步学习大数据:Hadoop 生态系统与场景
- MZERO微信支付流程的梳理
- 轻松解决oracle11g 空表不能exp导出的问题
- 第三周 求集合并集
- 使用truelicense实现用于JAVA工程license机制
- JNA加载DLL库
- 【札记】Linux下 MySQL-5.7.17 tar.gz 包方式安装部署后出现密码过期的问题解决(不修改/etc/my.cnf文件)