go语言命令行程序 go 命令

写命令行应用程序什么不可或缺?Go可以这样处理命令行参数 Go语言内置的flag包实现了命令行参数的解析,flag包使得开发命令行工具更为简单 。
如果你只是简单的想要获取命令行参数,可以像下面的代码示例一样使用os.Args来获取命令行参数 。
将上面的代码执行go build -o "args_demo"编译之后,执行:
os.Args是一个存储命令行参数的字符串切片,它的第一个元素是执行文件的名称 。
本文介绍了flag包的常用函数和基本用法,更详细的内容请查看官方文档 。
flag包支持的命令行参数类型有bool、int、int64、uint、uint64、float float64、string、duration 。
有以下两种常用的定义命令行flag参数的方法 。
基本格式如下:
flag.Type(flag名, 默认值, 帮助信息)*Type 例如我们要定义姓名、年龄、婚否三个命令行参数 , 我们可以按如下方式定义:
需要注意的是,此时name、age、married、delay均为对应类型的指针 。
基本格式如下: flag.TypeVar(Type指针, flag名, 默认值, 帮助信息) 例如我们要定义姓名、年龄、婚否三个命令行参数,我们可以按如下方式定义:
通过以上两种方法定义好命令行flag参数后 , 需要通过调用flag.Parse()来对命令行参数进行解析 。
【go语言命令行程序 go 命令】 支持的命令行参数格式有以下几种:
其中,布尔类型的参数必须使用等号的方式指定 。
Flag解析在第一个非flag参数(单个”-“不是flag参数)之前停止 , 或者在终止符”–“之后停止 。
定义
使用
命令行参数使用提示:
$ ./flag_demo -help
Usage of ./flag_demo:
-age int
年龄 (default 18)
-d duration
时间间隔
-married
婚否
-name string
姓名 (default "张三")
正常使用命令行flag参数:
使用非flag命令行参数:
原文链接:
Go语言命令行利器cobra使用教程cobra是一个提供简单接口来创建强大go语言命令行程序的现代CLI界面的库类似gitgit tools,cobra也是一个应用程序,它会生成go语言命令行程序你的应用程序的脚手架来快速开发基于cobra的应用程序
cobra提供go语言命令行程序:
cobra建立在命令、参数、标志的结构之上
commands代表动作,args是事物,flags是动作的修饰符
最好的应用程序在使用时读起来就像句子 , 因此,用户直观地知道如何与它们交互
模式如下go语言命令行程序:APPNAME VERB NOUN --ADJECTIVE. or APPNAME COMMAND ARG --FLAG(APPNAME 动词 名词 形容词 或者 APPNAME 命令 参数 标志)
一些真实世界的好例子可以更好地说明这一点
kubectl 命令更能体现APPNAME 动词 名词 形容词
如下的例子,server 是command,port是flag
这个命令中 , 我们告诉git 克隆url
命令是应用程序的中心点,应用程序支持的每一个交互都包含在一个命令中,命令可以有子命令,也可以运行操作
在上面的例子中 , server是命令
更多关于cobra.Command
flag是一种修改命令行为的方式,cobra支持完全兼容POSIX标志 , 也支持go flag package , cobra可以定义到子命令上的标志 , 也可以仅对该命令可用的标志
在上面的命令中,port是标志
标志的功能由 pflag library 提供 , pflag library是flag标准库的一个分支,在添加POSIX兼容性的同时维护相同的接口 。
使用cobra很简单,首先,使用go get按照最新版本的库,这个命令会安装cobra可执行程序以及库和依赖项
下一步 , 引入cobra到应用程序中

推荐阅读