gpt4 book ai didi

go - 使用 Go 解析字符串,如命令行参数

转载 作者:行者123 更新时间:2023-12-05 02:33:30 29 4
gpt4 key购买 nike

我如何获取一个字符串并将其作为一系列命令行参数进行解析?我希望能够获取一个字符串并使用标志和/或 pflag 对其进行解析。我该怎么做?

package main

import (
"fmt"
"os"

flag "github.com/spf13/pflag"
)

func main() {
command := `unimportant -fb "quoted string"`
var (
foo bool
bar string
)
flag.BoolVarP(&foo, "foo", "f", false, "foo")
flag.StringVarP(&bar, "bar", "b", "default", "bar")

// Parse command
os.Args = append(os.Args, "-fb", "quoted string")
flag.Parse()

fmt.Println(command)
fmt.Println("foo", foo)
fmt.Println("bar", bar)
}

最佳答案

最简单的方法是使用包 shellwords将您的字符串解析为 shell 单词的 argv,然后使用 flag 以外的命令行解析器或 pflag支持解析任意 argv(例如 flags ,但有很多可供选择。)

// Parse  your string into an []string as the shell would.

argv, err := shellwords.Parse("./foo --bar=baz")
// argv should be ["./foo", "--bar=baz"]

...

// define your options, etc. here

...

extraArgs, err := flags.ParseArgs(&opts, argv)

关于go - 使用 Go 解析字符串,如命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70981456/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com