golang获取命令行参数方法总结


文章目录

      • #使用OS库获取命令行参数
      • #使用flag包获取命令行参数

#使用OS库获取命令行参数
代码:
package mainimport ( "fmt" "os" )func main(){ //打印参数数量 fmt.Println("命令行参数数量:",len(os.Args)) //只打印某个参数 fmt.Println("第二个参数:",os.Args[1]) //遍历参数并打印 for k,v:= range os.Args{ fmt.Printf("args[%v]=[%v]\n",k,v) } }

生成并运行:
go build -o main.exe main.go ./main.exe 小李 18岁 程序员

结果:
命令行参数数量:4 第二个参数:小李 args[0]=[./main.exe] args[1]=[小李] args[2]=[18岁] args[3]=[程序员]

#使用flag包获取命令行参数
【golang获取命令行参数方法总结】flag包可以方便的解析命令行参数,而且参数顺序可以随意;
代码:
package mainimport ( "flag" "fmt" )func main() { //定义变量,用于接收命令行的参数值 var user string var pwd string var host string var port int //&user 就是接收用户命令行中输入的 -u 后面的参数值 //"u" ,就是 -u 指定参数 //"" , 默认值 //"用户名,默认为空" 说明 flag.StringVar(&user, "u", "", "用户名,默认为空") flag.StringVar(&pwd, "p", "", "密码,默认为空") flag.StringVar(&host, "h", "localhost", "主机名,默认为localhost") flag.IntVar(&port, "port", 3300, "端口号,默认为3300") //转换 flag.Parse() //输出结果 fmt.Printf("user=%v pwd=%v host=%v port=%v", user, pwd, host, port)}

生成并运行:
go build -o main.exe main.go./main.exe -u root -p pwd -h 192.168.2.23 -port 5566 user=root pwd=pwd host=192.168.2.23 port=5566./main.exe -u root -p pwd -h 192.168.2.23 user=root pwd=pwd host=192.168.2.23 port=3300

从上面的示例中可以看到,如果没有指定-port参数的值,会输出默认值3300;

    推荐阅读