我愿意创建一个与JUNOS cli或cisco cli相同的项目,
我通过gnu readline来了,但我很困惑,因为有太多的功能和方法要实现。任何我想要一个cli自动完成使用选项卡和带有问号的空格键来显示带有帮助文本的命令。
我有两个问题:
readline.parse_and_bind('tab: complete')
我应该对帮助和自动完成功能使用相同的完整功能。我在哪里经历了另一个功能
readline.set_completion_display_matches_hook(print_suggestions)
你的建议:对我来说是全新的!
答案 0 :(得分:1)
我必须说,我很难理解你在问题中提到的具体问题。但无论如何,这是一个建议:
从cmd模块开始。它为您提供了一个很好的小框架来构建命令行解释器。它支持开箱即用的标签完成(提供的读取线可用)。开始实现命令行界面。一旦稳定,你可以考虑增加更多的舒适度,例如选项卡完成命令参数,帮助键等。这样,您就有了一个可以处理的应用程序,并且可以在您真正需要时更具体地处理readline详细信息。如果我在你的鞋子里,我不会提前阅读整个readline API。
答案 1 :(得分:0)
我们必须创建像JunOS / Cisco / VyOS这样的cli,我们在ishell之上构建它,它使用readline来完成这项工作。
从项目页面:
ishell可帮助您轻松为应用程序创建交互式shell。它支持命令完成,动态参数,命令历史和命令链接。
您可以在github上查看项目:https://github.com/italorossi/ishell
思科示例:
PS:我是作者:)。