我正在尝试使用python的cmd库来创建一个包含有限命令的shell。我的一个要求是能够运行一个执行现有shell脚本的命令,该脚本在远程计算机上打开ssh会话,并允许用户与远程shell进行交互,就好像它是一个常规的ssh会话一样。
简单地使用subprocess.Popen('[/ path / to / connect.sh]')至少可以作为一个起点,除了一个问题。您可以与远程shell进行交互,但您键入的输入未显示在stdout上...例如,您在stdout上看到提示,但是当您键入“ls”时,您看不到它被键入但是当您点击时返回它按预期工作。
我正在尝试将输入打印到stdout,并将其发送到远程ssh会话。
编辑: 不使用cmd的实际代码只是一行:
ssh_session = subprocess.Popen(['connect.sh'])
它是从扩展cmd.Cmd的类中的do_ *方法触发的。我想我最终可能会使用paramiko,但仍会对任何人的意见感兴趣。