+++
title=”golang进阶(二)——cobra更实用的命令行”
date=”2017-10-11”
tags=[“golang”,”glide”,”docker”]
categories=[“资源管理”]
description=”golang自身带的命令行包,各种case,有代码洁癖的人看着就令人头大”
+++
cobra是个非常不错的命令行包,docker,hugo都在使用
基命令首先创建一个基命令
package cmd import ( "github.com/spf13/cobra" ) var RootCmd = &cobra.Command{ Use: "gonne",Run: func(cmd *cobra.Command,args []) { println("gonne is my ai friend") },}使用命令
在main方法中@L_772_3@命令,恩,就这么简单
package main import ( "fmt" "os" "lastsweetop.com/cmd" ) func main() { if err := cmd.RootCmd.Execute(); err != nil { fmt.Println(err) os.Exit(1) } }
gonneRun
appletekiMACBook-Pro:src apple$ gonne gonne is my ai friend@H_197_67@子命令
在基命令上增加子命令也相当简单,根本无需在基命令和main方法中写任何代码,只需新建一个go文件,多个子命令间也是相互独立的,多么优雅的代码,告别各种case
package cmd import "github.com/spf13/cobra" func init() { RootCmd.AddCommand(versionCmd) } var versionCmd = &cobra.Command{ Use: "version",Short: "Print the version number of Gonne",args []) { println("gonne version is 0.0.1") },}
效果如下:
appletekiMACBook-Pro:src apple$ gonne version gonne version is 0.0.1其他
还有关于参数的问题,我们下一篇和怎么样做一个后台进程一起讲