我知道这个问题在这里和其他地方被问过很多次,因为我正在寻找答案。然而,它仍令我困惑,为什么命令行解析器库不提供这种常见的使用场景,我有一组子命令,每个子命令都有自己的一组必需和可选参数。类似的构造可以在git/svn中找到,但是在他们的情况下,如果我没有弄错,子命令是独立的程序。命令行分析器和缺少子命令和分组?
总之,我所寻求的是一种简单的方法:
top_command subcmd_A [ command A's options ....]
top_command subcmd_B [ command B's options ....]
...
在Java的世界里,两人经常提到的库是Apache的命令CLI和司法制度评估方案。我没有看到他们中的任何一位有这样的想法 - 虽然你可能会调整和定制很多以适应......但是定义一个选项的基本流程,注册......然后在最后解析它们都不会“如果考虑到不同子命令的情况,验证和解析器需要以不同的方式运行。
也许这里的常识是这个应用程序太具体,应该留给应用程序本身处理。我可以想到的一种方法是定义一个BaseCommand类,并且每个子命令都会扩展它并注册它们自己......以便将其分解以便于管理。如果任何成熟的框架可以做到这一点,我会欣赏任何指针在这里。
虽然我对当前解析器功能的理解可能是错误的,但非常感谢您的任何洞察。
奥利弗
我不知道我错过了这个图书馆,但它看起来很有趣。谢谢。 – Oliver