我找了一些类似的问题,但除了以下几个问题,我什么也找不到:https://github.com/spf13/cobra/issues/1025
我的问题是插入一些在开头包含破折号的字符串,如下面的示例所示,
go run myapp exampleCmd set "-Dexample"眼镜蛇似乎将输入-Dexample作为内部参数,因为返回此输出:
Error: unknown shorthand flag: 'D' in -Dexample
Usage:
myapp exampleCmd set [flags]
Flags:
-h, --help help for set
Global Flags:
-s, --set string Set exampleCmd parameters. (default "default_param")我的init()函数包含以下两行:
func init() {
...
exampleCmd.PersistentFlags().StringP("set", "s", defaultArgument, "Set parameters.")
exampleCmd.AddCommand(setCmd)
...
}
var exampleCmd = &cobra.Command{
Use: "set",
Short: "set parameter",
Long: `set parameter`,
RunE: func(cmd *cobra.Command, args []string) error {
if len(args) != 1 && len(args) != 0 {
color.Red("Wrong usage, insert just a parameter")
} else if len(args) == 0 {
color.Yellow("Setting default parameter: " + defaultArgument)
internal.SetParams(defaultArgument)
} else {
internal.SetParams(args[0])
}
return nil
},
}如果存在任何解决方案,我如何接受从眼镜蛇开始时带有破折号的参数?
发布于 2022-10-24 10:30:02
我在标记集中间选项中找到了解决方案:https://github.com/spf13/cobra/issues/1307#issue-777308697
这就是说眼镜蛇第一次之后的其他旗子也是旗子。
https://stackoverflow.com/questions/70146280
复制相似问题