golang获取命令行参数

golang获取命令行参数方式

下面这两种方式不知道是不是每种语言都有,我在 python 中用过这两种方式

利用os库获取,此种方式只是可以简单的捕获命令行参数,如果命令行参数很少的话,使用此方式

package main

import (
	"fmt"
	"os"
)

func main()  {

	// 获取命令行参数
	fmt.Println("命令行参数数量:",len(os.Args))
	for i,I:= range os.Args{
		fmt.Printf("args[%v]=[%v]\n",i,I)
	}
}

测试::

go run gotestgo.go aaa bbb ccc ddd

 结果:

F:\go_pro\manager_ali_ecs\src>go run gotestgo.go aaa bbb ccc ddd
命令行参数数量: 5
args[0]=[C:\Users\ADMINI~1.DES\AppData\Local\Temp\go-build493348978\b001\exe\gotestgo.exe]
args[1]=[aaa]
args[2]=[bbb]
args[3]=[ccc]
args[4]=[ddd]

 

 利用 flag 库获取命令行参数

package main

import (
	"flag"
	"fmt"
)

func main() {

	/*
	   定义变量接收控制台参数
	*/
	var username string
	var password string
	var host string
	var port int

	// 添加 --help 帮助信息
	flag.StringVar(&username, "u", "", "用户名,默认为空")
	flag.StringVar(&password, "p", "", "密码,默认为空")
	flag.StringVar(&host, "h", "127.0.0.1", "主机名,默认 127.0.0.1")
	flag.IntVar(&port, "P", 3306, "端口号,默认为空")
	flag.Parse()

	// 验证参数
	fmt.Printf("username=%v password=%v host=%v port=%v", username, password, host, port)
}

测试 --help 获取帮助

F:\go_pro\manager_ali_ecs\src>go run gotestgo.go --htlp
flag provided but not defined: -htlp
Usage of C:\Users\ADMINI~1.DES\AppData\Local\Temp\go-build127812726\b001\exe\gotestgo.exe:
  -P int
        端口号,默认为空 (default 3306)
  -h string
        主机名,默认 127.0.0.1 (default "127.0.0.1")
  -p string
        密码,默认为空
  -u string
        用户名,默认为空

 

测试参数

F:\go_pro\manager_ali_ecs\src>go run gotestgo.go -u root -p 123qwe
username=root password=123qwe host=127.0.0.1 port=3306
F:\go_pro\manager_ali_ecs\src>
F:\go_pro\manager_ali_ecs\src>go run gotestgo.go -u root -p 123qwe -h 192.168.1.1
username=root password=123qwe host=192.168.1.1 port=3306
F:\go_pro\manager_ali_ecs\src>
F:\go_pro\manager_ali_ecs\src>go run gotestgo.go -u root -p 123qwe -h 192.168.1.1 -p 3307
username=root password=3307 host=192.168.1.1 port=3306

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值