os.Args获取命令行参数
os.Args是一个srting的切片,用来存储所有的命令行参数
package main import ( "fmt" "os" ) func main() { fmt.Println(os.Args) }
flag获取命令行参数
常用变量
flag.BoolVar:flag的值保存到指针的变量。
flag.StringVar
flag.UintVar
参数(传入的变量【指针类型】, 变量的名称【命令行指定的如:-c --help】, 默认值 帮助时打印的参数的帮助信息)
例子:
package main import ( "flag" "fmt" "os" ) var ( c string cpu uint t bool d bool h bool ) func init() { flag.BoolVar(&h, "h", false, "this help") flag.StringVar(&c, "c", "", "set config `file` (default /etc/nginx/nginx.conf)") flag.UintVar(&cpu, "cpu", 1, "set cpu `number`") flag.BoolVar(&t, "t", false, "configtest `config file`") flag.BoolVar(&d, "d", false, "daemon start") flag.Usage = usage } func main() { flag.Parse() if h { flag.Usage() } else { fmt.Printf("config=%s,cpu=%d,configtest=%t,help=%t,daemon=%t", c, cpu, t, h, d) } } func usage() { fmt.Fprintf(os.Stderr, `nginx version: nginx/99.10.0 Usage: nginx [-dt] [-c configfile] [-cpu cup number] Options: `) flag.PrintDefaults() }
注:-c 默认为 string 在帮助参数中加上反引号就会更改参数的类型值