Eli's Blog

1. 命令行参数:os.Args []string

1
2
3
4
5
6
7
8
9
func main() {
args := os.Args

fmt.Printf("接收到%v个参数\n", len(args))

for i, v := range args {
fmt.Printf("args[%v]=%v\n", i, v)
}
}

2. flag包解析命令行参数

1
2
IntVar(p *int, name string, value int, usage string)
StringVar(p *string, name string, value string, usage string)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
func main() {
var user string
var pwd string
var host string
var port int

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

// 转换
flag.Parse()

fmt.Printf("user=%v, pwd=%v, host=%v, port=%v\n", user, pwd, host, port)
}
1
2
3
$ go build -o main flag_1.go 
$ ./main -u root -p 123456 -h localhost -P 3006
user=root, pwd=123456, host=localhost, port=3006