golang标准库flag包实现实现命令行解析

golang中flag包是用来对命令行参数解析的,看下面一个简单例子:

package main
 
import (
 "fmt"
 "flag"
)
 
func main() {
 
 //使用flag.String()函数注册flag,得到结果conf指针
 var conf = flag.String("f", "test.conf", "Specify the config file")
 
 //也可以将flag绑定到某个变量上
 var int_var int
 flag.IntVar(&int_var, "i", 100, "just a test int")
 
 //解析命令
 flag.Parse();
 
 fmt.Println(*conf)
 fmt.Println(int_var)
}

运行效果:

mckee@mckee-thinkpad:~/program/go/test/src/test$ go run test.go -f /etc/test.conf -i 11111
/etc/test.conf
11111

时间: 2024-11-01 22:30:43

golang标准库flag包实现实现命令行解析的相关文章

golang标准库reflect包实现操作任意类型对象

空接口interface{},reflect配合空接口,让原本是静态类型的go具备了很多动态类型语言的特征. func TypeOf(i interface{}) Type TypeOf返回接口中保存的值的类型,TypeOf(nil)会返回nil. func ValueOf(i interface{}) Value ValueOf返回一个初始化为i接口保管的具体值的Value,ValueOf(nil)返回Value零值. func (v Value) NumField() int 返回v持有的结

JOpt Simple 4.0发布 测试驱动的命令行解析器

JOpt Simple是一个用于Java程序的测试驱动的简单命令行解析器.它支持POSIX getopt() 和 GNU getopt_long() . JOpt Simple 4.0版本更新日志: 1.增加了选项解析的方法,formatHelpWith(HelpFormatter) 允许程序员改变printHelpOn() 打印帮助.2.通过选项文,处理一个HelpFormatter,其值OptionDescriptors分析器已配置.3.添加OptionSet.hasOptions() 选项

JOpt Simple 4.1发布 测试驱动的命令行解析器

JOpt Simple 4.1此版本允许短选项集群包含可以接受的参数.当遇到这样的选择是,在集群中的其余字符被视为该选项的参数. JOpt Simple是一个用于Java程序的测试驱动的简单命令行解析器.它支持POSIX getopt() 和 GNU getopt_long() . 示例:http://pholser.github.com/jopt-simple/examples.html 下载地址:http://pholser.github.com/jopt-simple/download.h

四个Python库,实现超实用的命令行功能

在二部曲系列文章的第二部分关于伟大的命令行 UI 终端应用文章中,我们探索了"提示工具包","命令行界面创建工具包","Pygments"和"模糊搜索". 这是我的二部曲终端应用程序与伟大的命令行界面的第二部分. 在第一篇文章中,我介绍了几个能使使用命令行程序充满乐趣的功能. 在第二部分中,我将介绍如何在几个 Python 库的帮助下实现这些功能. 在本文结尾,读者应该很好地了解如何使用 Prompt Toolkit,Clic

github版本库使用详细图文教程(命令行及图形界面版)_其它综合

Git是一个分布式的版本控制系统,作为开源代码库以及版本控制系统,Github目前拥有140多万开发者用户.随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法. > Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理.在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中.目前,包括 Rubinius和Merb在内的很多知名项目都使用了Git.Git同样可以被诸如Capistrano和

mysql常用基础操作语法(四)--对数据的简单无条件查询及库和表查询【命令行模式】

1.mysql简单的查询:select 字段1,字段2...  from tablename; 如果字段那里写一个*,代表查询所有的字段,等同于指定出所有的字段名,因此如果要查询所有字段的数据,一般都是用*. 2.去重查询:select distinct 字段1,字段2... form tablename: 可以结合上一张图的结果来对比. 3.直接在查询时做数学四则运算,加减乘除余: 4.查询时给查询结果字段重命名:select 字段1 as 名称1,字段2 as 名称2 ... from ta

Array vpn 设备的命令行解析

单位一直都在使用Array的VPN设备来给集团的下属用户来提供SSL vpn服务,所有的集团下属用户的账号都建立在了设备的localDB上,以往呢,每次在创建账号之时,我都采用web登陆设备进行创建,web的响应速度真的是不敢恭维. 目前,网上的很多关于Array的配置方法,大部分都是是用Web来进行配置,上周抽时间将web和CLI一点点的对照了一下,做了一些常规命令的解释,希望可以帮助大家. 我直接在设备的全局模式下,show tech来抓取配置,同时也将一下文本中无用的一些配置进行了删除整理

.NET命令行解析器示例程序(命令行选项功能)_实用技巧

示例需求 拷贝文件,如:CopyFiles -s "E:\Framework\Tenoner - 副本 (2)" -p "*.csproj" -t "E:\Framework\Tenoner - 副本 (2)\Bak",可以支持:深度拷贝.拷贝符合指定模式的文件.是否覆盖等选项. 使用 CommandLineParserCommandLineParser 是一个轻量级的工具,使用非常简答,官方也有教程. 选项类 复制代码 代码如下: using

使用os包和flag包实现读取main命令入参_Golang

os包的Args包括了命令名本身,作为读取参数的第一个值. flag.Args读取命令后的入参(要配合flag.Parse()使用). 也就是,os的比flag多一个命令名的读取. package main import ( "flag" "fmt" "os" ) func main() { // os.Args方式 args := os.Args if args == nil || len(args) < 2 { fmt.Println(