我正在编写一个CLI工具,并选择了github.com/jessevdk/go-flags进行CLI arg解析。我试图弄清楚强制定位arg的最佳方法。目前,我有以下内容:
func main() {
args, err := flags.Parse(&opts)
if err != nil {
panic(err)
}
if len(args) < 1 {
panic("An s3 bucket is required")
}
}
这样可行,但它不会导致显示帮助输出,就像标记为"required:true"
的情况一样。有没有办法通过手动调用&#34;打印帮助&#34;来复制该行为?功能或设置所需数量的位置参数?
答案 0 :(得分:1)
使用os.Args会有帮助吗?例如:
package main
import (
"fmt"
"os"
)
const Usage = `Usage:
%s one two
`
func main() {
if len(os.Args) != 3 {
fmt.Printf(Usage, os.Args[0])
os.Exit(-1)
}
//run program
}
os.Args持有命令行参数,从程序名称开始。