使用os.Args获得参数
os.Args是一个string的切片,用来存储所有的命令参数
func GetArgs() {
fmt.Println("命令行参数:", len(os.Args))
for i, v := range os.Args {
fmt.Printf("args[%v] = %v", i, v)
}
}
可如下获取参数
使用flag包解析命令行参数
前面的方式是比较原生的方式,对解析参数不是特别的方便,特别是带有指定参数形式的命令行。
为获得可以指定参数的命令行参数可以使用flag包
具体代码
func GetArgsByFlag() {
var user string
var password string
var host string
var port int
// &user:保存命令行中输入 -u 后面的参数值
// "u" : 指定参数: -u
// "root" : 默认值
// "用户名,默认为root" : 说明
flag.StringVar(&user, "u", "root", "用户名,默认为root")
flag.StringVar(&password, "P", "123456", "密码,默认为123456")
flag.StringVar(&host, "h", "localhost", "主机名,默认本机")
flag.IntVar(&port, "p", 3306, "端口号,默认是3306")
// 这里有一个非常中的操作,转换,必须调用该方法
flag.Parse()
fmt.Printf("user = %v
", user)
fmt.Printf("password = %v
", password)
fmt.Printf("host = %v
", host)
fmt.Printf("port = %v
", port)
}
可如下获取参数