Golang Go语言中有什么好用的命令行解析实现库么
现在需要一个 command line 解析的库,需要能够实现:
- command 自动补全(这里的 command 并非操作系统的命令,而是我代码中写好的 Action )
- 在输入时能够提示当前输入对应的哪几个 command (比如输入 h/H 提示 Help 、Hash 等)
- 能够一定情况下补全系统文件名称(比如在某个 command 后输入了 /etc/ 能够自动检索当前系统目录并给出类似 pty 的提示)
目前看到 github 有个 github.com/chzyer/readline 的库能够实现部分场景的需求,请教一下万能的 v 友是否有其它推荐?
Golang Go语言中有什么好用的命令行解析实现库么
更多关于Golang Go语言中有什么好用的命令行解析实现库么的实战教程也可以访问 https://www.itying.com/category-94-b0.html
最近也在看,碰壁了。
Cobra 虽说能实现,但我 demo 没有成功。
更多关于Golang Go语言中有什么好用的命令行解析实现库么的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
你这些功能都不是命令行本身提供的,是 shell 提供的。尤其是 3
类似 cobra 这样的库,可以提供自动生成 shell 补全所需要的脚本。
https://github.com/spf13/cobra/blob/master/shell_completions.md
文不对题。你说的这些和命令行解析一点关系都没有。
补全属于 shell 的功能,需要写 shell 补全文件声明如何补全。
#2 #3 OP 说的 command 补全和 shell 补全应该是不一样的。
类似于
$ openssl ran
补全 rand ,这是 shell
$ openssl
> ran
这类补全我一直以为是程序处理的
可能跑题,一个栗子,kubectl 的命令行补全是它自己提供的一个一万多行( bash 版本)的补全脚本,然后 shell 来 source 这个脚本
https://kubernetes.io/docs/reference/kubectl/cheatsheet
我的项目一般都用
github.com/urfave/cli/v2
回复上楼的回复,我的理解这确实是 shell 的补全,但又感觉说是 shell 不太合适,毕竟是程序自己实现的补全,因此记录为命令行补全。
对的,我需要的就是这种程序处理的补全,希望看看有没有自动化实现的库,只需要定义命令,其它的交由库去实现。
我需要的不是这种类型的 shell 补全,可以参考一下四楼。
我的理解你可能需要的是 cli 的补全。
看下这个库符不符合。https://github.com/c-bata/go-prompt
感谢,看了一下符合需求。
为什么打开是 404 呢
你去掉 v2 就行了
在Go语言中,确实存在多个好用的命令行解析库,它们各有特色,能够满足不同的开发需求。以下是一些值得推荐的库:
-
flag库:
- 这是Go语言的标准库之一,提供了基本的命令行参数解析功能。
- 使用简单,适合小型项目或快速开发场景。
- 支持布尔型、整型、字符串型等多种参数类型。
-
cli库(如urfave/cli):
- 这是一个功能丰富的第三方库,提供了比flag库更强大的命令行解析能力。
- 支持子命令、参数校验、自动生成帮助信息等高级功能。
- 适用于需要复杂命令行界面的项目。
-
cobra库:
- 也是一个流行的第三方库,提供了类似于cli库的功能。
- 强调易用性和灵活性,支持命令行参数的嵌套和分组。
- 适用于构建大型命令行应用程序。
总的来说,对于简单的命令行参数解析,flag库已经足够;而对于需要更复杂功能的项目,可以考虑使用cli库或cobra库。这些库都提供了良好的文档和示例代码,有助于开发者快速上手。在选择库时,建议根据项目需求和开发者习惯进行选择。