go 命令行参数

os.Agrs 是一个string型的切片, 用于储存所有的命令行参数

如果不传入命令行参数, 则os.Args中只有一个参数 -- 程序本身

func main() {
    fmt.Println(len(os.Args))	// 1
    for k, v := range os.Args {
        fmt.Printf("%d --- %s\n", k, v)		// 0 --- example
    }
}

输出的结果 'example' 就是此go文件所在的目录名称即编译时的目录

向命令行传入两个参数(参数之间以空格分隔), 输出:

3
0 --- example
1 --- d
2 --- d:/test.txt

flag包对命令行的支持

它里面的如下方法, 可以自动解析命令行参数. 只需要设置(调用)这些方法即可

flag.BoolVar()

flag.StringVar()

flag.Intvar()

扫描二维码关注公众号,回复: 5354245 查看本文章
func main() {
    var configPath string    // 表示配置文件的路径
    var path int             // 表示日志的级别
	
    flag.StringVar(&configPath, "s", "", "input config path")  // 相当于配置
    flag.IntVar(&path, "l", 0, "input log level")

    flag.Parse()    // 解析命令行参数, 相当于使配置生效
	
    fmt.Println(configPath)
    fmt.Println(path)
}

D:\golang\workspace\project>example.exe -s c:/project/config.ini  -l 10           // 输入两个命令行参数
c:/project/config.ini
10

D:\golang\workspace\project>

猜你喜欢

转载自blog.csdn.net/lljxk2008/article/details/87651823