Golang---命令行参数处理

1. os.Args

os.Args 是一个string切片,用来存储所有的命令行参数

package main

import (
	"fmt"
	"os"
)

func main() {
	// 空格分割
	fmt.Printf("命令行参数有%v个",len(os.Args))
	for i,v := range os.Args{
		fmt.Println(i)
		fmt.Println(v)
	}
}

2. flag包解析命令行参数

可以指定参数

C:\Users\Administrator\AppData\Local\Temp\GoLand\___1go_build_test_go.exe -u root -pwd 123 -h 27.45.121.2 -p 3306
package main

import (
	"flag"
	"fmt"
)

func main() {
	// 定义几个变量,用于接受命令行的参数值
	var user string
	var pwd string
	var host string
	var port int
	// &user 就是接受用户命令行中输入的-u 后面的参数,默认值是""

	flag.StringVar(&user,"u","","用户名,默认为空")
	flag.StringVar(&pwd,"pwd","","密码,默认为空")
	flag.StringVar(&host,"h","","主机地址,默认为空")
	flag.IntVar(&port,"p",3306,"端口,默认为3306")

	// 必须转换才能拿到对应的结果
	flag.Parse()

	// 输出结果
	fmt.Printf("user=%v pwd=%v host=%v port=%v",user,pwd,host,port)
}

posted @ 2021-09-27 14:28  河图s  阅读(79)  评论(0)    收藏  举报