Go-24 golang命令行初始

package main

import (
	"flag"
	"fmt"
	"os"
)

// golang命令行初识;可以后面多多了解一下强大的命令行工具cobra
// cobra 工具推荐了解的地址:https://blog.csdn.net/qq_42883074/article/details/123259512
// cobra 工具编写命令行案例:https://blog.csdn.net/qq_42883074/article/details/123276338

func main() {
	// 定义几个变量,用于接收命令行的参数值
	var user string
	var pwd string
	var host string
	var port int
	var creater string

	//设置我们的命令行参数
	flag.StringVar(&user, "u", "", "用户名,默认为空")
	flag.StringVar(&pwd, "p", "", "密码,默认为空")
	flag.StringVar(&host, "h", "localhost", "主机名,默认为localhost")
	flag.IntVar(&port, "port", 3306, "端口号默认为3306")
	flag.StringVar(&creater, "c", "", "创造者,默认为空")

	flag.Parse() //注册flag
	//从os.Args[1:]中解析注册的flag。
	//必须在所有flag都注册好而未访问其值时执行
	//未注册却使用flag -help时,会返回ErrHelp。

	fmt.Printf("user=%v pwd=%v host=%v port=%v creater=%v \n", user, pwd, host, port, creater)

	// os包中有一个Args,是一个string类型的切片,用来存储所有的命令行参数。

	fmt.Println("命令行的参数有:", len(os.Args), "个 !!!")
	// 变量os.Args切片,会将所有命令行参数存储到os.Args切片中,然后我们通过for-range去遍历切片打印出传入的参数
	for i, v := range os.Args {
		fmt.Printf("args[%v]=%v \n", i, v)
	}

	/*
		可以使用命令 go run .\27.go -u root -p 123456 -h 127.0.0.1 -port 3306 -c luzhaoshan 运行该文件
	*/

}


posted @ 2023-01-28 13:48  大海一个人听  阅读(25)  评论(0编辑  收藏  举报