Python 使用Paramiko invoke_shell()执行的命令的输出已分页(在recv中获取“更多…”)
我使用Python 使用Paramiko invoke_shell()执行的命令的输出已分页(在recv中获取“更多…”),python,ssh,paramiko,channel,Python,Ssh,Paramiko,Channel,我使用sendall() 我应该把整个输出都放在那里,但是我注意到在我收到的输出的最后一行,有一个--更多--。就像使用less命令时得到的一样 因此,通道仍在等待更多输出,因为缓冲区不是空的(预期会有更多输出),并且命令希望我按空格键以显示更多输出 频道永远在等待 如何一次完成整个输出?我不想要那个——更多-- 增加缓冲区大小没有任何区别。使用,而不是调用\u shell+发送所有 invoke_shell(带有默认参数)模拟交互式80x24终端。是什么使您正在执行的命令产生了一些奇特的功能,
sendall()
我应该把整个输出都放在那里,但是我注意到在我收到的输出的最后一行,有一个--更多--
。就像使用less
命令时得到的一样
因此,通道仍在等待更多输出,因为缓冲区不是空的(预期会有更多输出),并且命令希望我按空格键以显示更多输出
频道永远在等待
如何一次完成整个输出?我不想要那个——更多--
增加缓冲区大小没有任何区别。使用,而不是调用\u shell
+发送所有
invoke_shell
(带有默认参数)模拟交互式80x24终端。是什么使您正在执行的命令产生了一些奇特的功能,比如分页
def invoke_shell(self, term='vt100', width=80, height=24, width_pixels=0,
height_pixels=0):
def exec_command(self, command, bufsize=-1, timeout=None, get_pty=False):
而exec_命令
(带有默认参数,即get_pty=False
)使用非交互式终端。如何使命令(如果正确实现)避免分页
def invoke_shell(self, term='vt100', width=80, height=24, width_pixels=0,
height_pixels=0):
def exec_command(self, command, bufsize=-1, timeout=None, get_pty=False):
如果上述操作无助于删除
--更多--
,并且您正在连接到Cisco设备,则向该设备发送以下命令可能会有所帮助:
terminal length 0
另请参见。这很有帮助。最后,我在invoke_shell()调用中更改了宽度和高度。此外,我不推荐您使用您的解决方案。这是一个黑客,不是一个合适的解决方案。