命令行解析:flag
来源:互联网 发布:mac最火的颜色什么色号 编辑:程序博客网 时间:2024/05/22 13:55
一般使用
在写命令行程序(工具、server)时,对命令参数进行解析是常见的需求。Go的命令行参数解析通过flag包实现,先看下面这个例子,假设我们实现了一个server,启动这个server的时候需要指定监听的tcp地址(例如:127.0.0.1:1314)、配置文件、监听的http地址(例如:127.0.0.1:6666)。启动命令如下:
./server -tcpAddr 127.0.0.1:1314 -config “/usr/local/etc/xxx.conf” -httpAddr 127.0.0.1:6666
那我们的实现如下:
package mainimport ( "fmt" "flag")var ( tcpAddr = flag.String("tcpAddr", "0.0.0.0:1314", "监听的TCP地址") httpAddr = flag.String("httpAddr", "0.0.0.0:6666", "监听的http地址") configFile = flag.String("config", "", "配置文件地址"))func main(){ flag.Parse() fmt.Printf("tcpAddr:%s\n", *tcpAddr) fmt.Printf("httpAddr:%s\n", *httpAddr) fmt.Printf("configFile:%s\n", *configFile)}
不带参数的执行结果:
winterdeMacBook-Pro:interface winter$ ./flagtesttcpAddr:0.0.0.0:1314httpAddr:0.0.0.0:6666configFile:
带参数的执行结果:
winterdeMacBook-Pro:interface winter$ ./flagtest -tcpAddr 127.0.0.1:1314 -httpAddr 127.0.0.1:6666 -config /usr/local/etc/xxx.conftcpAddr:127.0.0.1:1314httpAddr:127.0.0.1:6666configFile:/usr/local/etc/xxx.conf
常用函数
Usage
用于输出所有定义了的命令行参数及其帮组信息。例如上述代码中flag.Parse()后调用flag.Usage()输出:
-config string 配置文件地址-httpAddr string 监听的http地址 (default "0.0.0.0:6666")-tcpAddr string 监听的TCP地址 (default "0.0.0.0:1314")
flag.Xxx
其中Xxx可以是Int、String等;返回一个相应类型的指针,如:
httpAddr = flag.String("httpAddr", "0.0.0.0:6666", "监听的http地址")
flag.Xxxvar
将flag绑定到一个变量上
var httpAddr stringflag.String(&httpAddr, "httpAddr", "0.0.0.0:6666", "监听的http地址")
命令行使用方法
命令行flag的语法有如下三种形式:
- -flag // 只支持bool类型
- -flag=x
- -flag x // 只支持非bool类型
所以都使用-flag=x就行了
阅读全文
0 0
- 命令行解析:flag
- go flag 包解析命令行参数
- golang flag标准库命令行参数解析
- Go 用flag包解析命令行参数
- 转:标准库—命令行参数解析flag
- Go 的 flag 包可以解析命令行的参数
- Golang: 使用flag包进行命令行参数解析
- intent flag 解析
- GO语言flag参数解析
- golang flag 解析入参
- FLag
- Flag
- flag
- flag
- flag
- FLAG
- Flag
- Flag
- bzoj2705 Longge的问题 (欧拉函数)
- 移除当前控制器 并添加新的控制器
- 除了 Python,为什么机器学习还需要一种新的编程语言?
- 走进蚂蚁金服-全球名企技术巡回第一站
- 重塑金融科技:企业级云平台为金融科技实现开箱即用
- 命令行解析:flag
- 第十一届浙财信息管理与工程学院程序设计竞赛题解
- 基于深度学习的目标检测算法综述
- 徐登沿的第十五个程序(读入五个正整数并显示它们,当程序读入的数据为负数时,程序立即终止)
- servlet开发
- [USACO12JAN]Video Game Combos
- angular4中动态设置title
- Unity3D优化
- Shader山下(三十)移动平台上的优化