如何处理必需和可选的命令行参数?
How to handle required and optional command line arguments?
我想创建一个带有一些参数的脚本,例如 param1
、param2
、param3
。 param1
必须 设置,否则它会打印错误并退出脚本,而其他 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(¶m1, "param1", "", "Parameter 1")
flag.StringVar(¶m2, "param2", "", "Parameter 2")
flag.StringVar(¶m3, "param3", "", "Parameter 3")
flag.StringVar(¶m4, "param4", "", "Parameter 4")
flag.Parse()
if param1 == "" {
fmt.Print("Missing required parameter 1 \n")
os.Exit(1)
}
}
构建完成后,您可以 运行 ./main -param1=abc -param2=good
,这会将 param1
和 param2
变量设置为 abc
和 good
分别。
我想创建一个带有一些参数的脚本,例如 param1
、param2
、param3
。 param1
必须 设置,否则它会打印错误并退出脚本,而其他 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(¶m1, "param1", "", "Parameter 1")
flag.StringVar(¶m2, "param2", "", "Parameter 2")
flag.StringVar(¶m3, "param3", "", "Parameter 3")
flag.StringVar(¶m4, "param4", "", "Parameter 4")
flag.Parse()
if param1 == "" {
fmt.Print("Missing required parameter 1 \n")
os.Exit(1)
}
}
构建完成后,您可以 运行 ./main -param1=abc -param2=good
,这会将 param1
和 param2
变量设置为 abc
和 good
分别。