用于处理命令行参数,os模块的os.Ages也可以获得命令行参数。

定义

host port 为指针遍历,调用值需要*host
flag.String(命令行参数名,默认值,提示信息)

  1. host := flag.String("host", "127.0.0.1", "请输入ip地址")
  2. port := flag.Int("port", 3389, "请输入端口号")
  3. flag.Parse()
  4. fmt.Printf("ip地址:%s:%d", *host, *port)

直接将地址赋给变量

  1. var host string
  2. var port int
  3. flag.StringVar(&host, "host", "127.0.0.1", "请输入ip地址")
  4. flag.IntVar(&port, "port", 3389, "请输入端口号")
  5. flag.Parse()
  6. fmt.Printf("ip地址:%s:%d", host, port)

定义后,运行main.exe -help/—h 自动生成help信息
s014
s123456@
kali admin@123

参数处理

获取定义命令行参数后其他的值:flag.Ages()

  1. var host string
  2. var port int
  3. flag.StringVar(&host, "host", "127.0.0.1", "请输入ip地址")
  4. flag.IntVar(&port, "port", 3389, "请输入端口号")
  5. //解析命令行参数
  6. flag.Parse()
  7. fmt.Printf("ip地址:%s:%d\n", host, port)
  8. //返回命令行参数后的其他参数
  9. fmt.Printf("命令行参数后其他参数:%s\n", flag.Args())
  10. // //返回命令行参数后的其他参数个数
  11. fmt.Println(flag.NArg())
  12. // //返回使用的命令行参数个数
  13. fmt.Println(flag.NFlag())

输入 main.exe -host 127.0.1.1 -port 3333 -asd ddd 报错没有参数-asd,并打印help
输入main.exe -host 127.0.1.1 -port 3333 ddd ,flag.Args() 输出ddd