如何处理必需和可选的命令行参数?

How to handle required and optional command line arguments?

我想创建一个带有一些参数的脚本,例如 param1param2param3param1 必须 设置,否则它会打印错误并退出脚本,而其他 2 个参数不是必需的。

如果我 运行 ./main param1 abc param2 good 在 param1 中保存字符串 abc 并在 param2 中保存字符串 good,我该如何做一个主要的?

您可以使用 flag 包。请看下面的代码:

package main

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

func main() {

    var param1 string
    var param2 string
    var param3 string
    var param4 string

    flag.StringVar(&param1, "param1", "", "Parameter 1")
    flag.StringVar(&param2, "param2", "", "Parameter 2")
    flag.StringVar(&param3, "param3", "", "Parameter 3")
    flag.StringVar(&param4, "param4", "", "Parameter 4")

    flag.Parse()
    if param1 == "" {
        fmt.Print("Missing required parameter 1 \n")
        os.Exit(1)
    }

}

构建完成后,您可以 运行 ./main -param1=abc -param2=good,这会将 param1param2 变量设置为 abcgood分别。