通过 flag 包解析命令行参数
可以使用flag.StringVar flag.IntVar flag.String flag.Int等来解析
package main
import (
"flag"
"fmt"
)
func main() {
// 获取命令行参数
varMap := getVars()
// 打印命令行参数
fmt.Printf("%+v\n", varMap)
fmt.Printf("name is %s, pass is %s", *varMap["name"], *varMap["pass"])
}
func getVars()(varMap map[string]*string) {
varMap = make(map[string]*string, 2)
varMap["name"] = flag.String("u", "root", "用户名")
varMap["pass"] = flag.String("p", "12345", "密码")
return
}
package main
import (
"flag"
"fmt"
)
func main() {
// 定义几个变量,用于接收命令行的参数值
var user string
var password string
var host string
var port int
// &user 就是接收命令行中输入 -u 后面的参数值,其他同理
flag.StringVar(&user, "u", "root", "账号,默认为root")
flag.StringVar(&password, "p", "", "密码,默认为空")
flag.StringVar(&host, "h", "localhost", "主机名,默认为localhost")
flag.IntVar(&port, "P", 3306, "端口号,默认为3306")
// 解析命令行参数写入注册的flag里
flag.Parse()
// 输出结果
fmt.Printf("user:%v\npassword:%v\nhost:%v\nport:%v\n",
user, password, host, port)
}