【发布时间】:2021-07-15 22:10:14
【问题描述】:
如何在 Golang 中将列表作为标志变量传递?例如,在 Bash 中,您可以将列表作为 getopts 传递给脚本。类似的东西:
./myScript.sh -n list_of_names.txt //some file with about 50 names
然后循环遍历列表:
#!/bin/bash
while getopts "n:h:" options; do
case "${options}" in
"n") NAME=${OPTARG};;
"h") PRINT_USAGE;;
esac
done
for i in $NAME; do
//TODO
我听说过“flag”包,但我不知道如何实现它
PS 我是 Go 新手
【问题讨论】:
-
这是来自文档的入门示例:golang.org/pkg/flag/#example_
-
flag用于接收参数,而不是将它们发送到另一个命令。 POSIX 没有“列表”参数的概念——所有 CLI 参数都是简单的字符串。这里没有显示 Go 代码;你能详细说明你正在尝试做什么并展示你是如何尝试做的吗? -
我还没有,但我需要在稍后阶段遍历传递的列表。抱歉,也许我的表述有点误导。我想要实现的结果与使用 bash 脚本的结果基本相同,但在 Golang 中
-
@Stead 你问如何遍历命令行参数指定的文件中的行?
-
你似乎很困惑。您没有将“列表”指定为参数,而是指定了文件名。你的程序对这个文件名做什么是一个完全独立的问题。例如,如何逐行读取文件已在 SO 和其他地方得到解答。
标签: go command-line-arguments getopts