【问题标题】:Tab completion over ssh library通过 ssh 库完成选项卡
【发布时间】:2021-08-10 10:41:08
【问题描述】:

我正在使用 paramiko 库来连接一个专门的环境。它基于 linux,但是当我们在其中使用 SSH 时,它提供了自己的 shell。我们可以编写帮助来获取该会话中支持的所有命令的列表。

我正在使用带有 python2.7 的 paramiko 来提供一个 CLI 客户端(它自动化了一些事情),它与主机连接并让我们运行支持的命令。现在我想在客户端 CLI 中提供 tab-completion。我不确定如何做到这一点。我想会有一些支持或一些专门的角色可以发送来获得回复,但我不确定如何实现。

我希望避免发送帮助命令,解析支持的命令列表,然后根据命令列表提供本地制表符补全。我想要一个更通用和动态的解决方案。

欢迎任何或所有想法。

【问题讨论】:

  • 那么“自己的shell”是否有自己的自动完成功能?或者,如果不是“帮助”命令的输出,您希望自动完成的基础是什么?
  • 是的,shell支持自动补全
  • 那么基本上,你想实现一个SSH终端客户端,比如ssh或PuTTY?
  • 这不是一个完整的终端。我已经有 CLI 并且它按照要求的方式工作,希望有制表符完成,这就是我所追求的

标签: python-2.7 paramiko tab-completion


【解决方案1】:

您可以尝试模拟部分输入并按下 Tab 键并解析结果,然后撤消模拟输入。但这不是一个好主意。您最终将不得不重新实现终端仿真,这是一项疯狂的任务。如果没有完整的终端实现,您永远无法确保永远不会得到无法解析的输出。

shell 是一个带有输入和输出的黑盒子。它只能这样使用。你永远不应该试图“理解”它的输出。

使用help 命令是一种更可靠的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 2014-08-12
    • 2013-08-24
    相关资源
    最近更新 更多