命令行参数处理
os.Args是一个string的切片,用来储存所有的命令行参数
如果用户没有输入参数也会有一个参数,就是当前程序
func main() { fmt.Printf("len of args: %d\n", len(os.Args)) for i, v := range os.Args { fmt.Printf("args[%d]=%s\n", i, v) } }
flag包用来解析命令行参数
// 参数说明: // 参数一: 将命令行参数的值赋值给该变量 // 参数二: 参数名 // 参数三: 默认值 // 参数四: 打印说明 flag.BoolVar(&test, "b", false, "print on newline") flag.StringVar(&str, "s", "", "print on newline") flag.IntVar(&count, "c", 1001, "print on newline")
例:
func main() { var confPath string var loglevel int flag.StringVar(&confPath, "c", "", "please input confPath") flag.IntVar(&loglevel, "d", 10, "please input loglevel") // 让设置生效 flag.Parse() fmt.Println("path:", confPath) fmt.Println("log level:", loglevel) }
输入示例: main.exe -c hhhhh -d 100