21.Go语言·命令行参数
2019-06-10 本文已影响0人
一枼落知天下
main.go
// Go语言·命令行
package main
// 包的本质是创建不同的文件夹
// go的每一个文件都是属于一个包的
// go以包的形式管理项目和文件目录。
// import "包的路径"
import (
model "day27/model"
)
var content string = `
————————————————Go语言·命令行————————————————————
一、命令行参数
二、flag包解析命令行参数
flag包实现了命令行参数的解析。
`
func main() {
model.Entry()
}
model/Utils.go
package model
import (
"fmt"
"os"
"flag"
)
/**
* [Init 入口]
* @author Jhou Shuai
* @datetime 2019-05-18T11:58:33+0800
*/
func Entry() {
cmdFlag()
}
/**
* [cmdArgs 命令行参数]
* @author Jhou Shuai
* @datetime 2019-06-10T14:25:11+0800
*/
func cmdArgs() {
for i ,val := range os.Args {
fmt.Printf("args[%v]=%v \n",i,val)
}
}
/**
* [cmdFlag flag包实现了命令行参数的解析]
* @author Jhou Shuai
* @datetime 2019-06-10T14:53:29+0800
* $ go run main.go -u root -p 123456 -h 10.0.0.12 -port 6000
* user:root pwd=123456,host=10.0.0.12,port=6000
*/
func cmdFlag() {
// 定义或声明变量,用于接收命令行参数
var (
user string
pwd string
host string
port int
)
// user 接收 -u zhoushuai
// "u" -u 指定参数
// "" 默认值
// "用户名,默认为空" 说明
flag.StringVar(&user, "u","","用户名,默认为空")
flag.StringVar(&pwd, "p","","密码,默认为空")
flag.StringVar(&host, "h","localhost","主机名,默认为localhost")
flag.IntVar(&port,"port", 3306, "端口号,默认3306")
// os.Args[1:]
flag.Parse()
fmt.Printf("user:%v,pwd=%v,host=%v,port=%v \n",
user,pwd,host,port)
}