我使用XYZ
sendall()
命令
channel = ssh.invoke_shell()
channel.sendall('XYZ\n')
response = channel.recv(2000)
我应该把整个输出放在那里,但后来我注意到在我收到的输出的最后一行中,有一个" - 更多 - "在末尾。就像你使用“少”时所获得的一样。命令。
因此,通道仍在等待更多输出,因为缓冲区不为空(预期输出更多),并且命令期望我按 SPACE 显示更多输出。
频道永远等待。
如何一次性获得整个输出?我不希望那样" - 更多 - "。
增加缓冲区大小没有区别。
答案 0 :(得分:1)
使用exec_command
,而不是invoke_shell
+ sendall
。
invoke_shell
(使用默认参数)模拟交互式80x24终端。是什么让你执行的命令做了像分页这样的花哨的东西。
def invoke_shell(self, term='vt100', width=80, height=24, width_pixels=0,
height_pixels=0):
exec_command
(使用默认参数,即get_pty=False
)使用非交互式终端。应该做什么命令(如果实施得当)避免做分页。
def exec_command(self, command, bufsize=-1, timeout=None, get_pty=False):