使用pxpect(Python 3-v4.6.0,Python 2-v4.2.1)中的pxsh执行命令时,不会返回命令的输出,只返回命令本身和控制字符(下面的示例)。 这仅在使用具有特定长度的命令时发生,例如,当将窗口大小设置为200时,长度为189个字符的命令将触发此行为,对于窗口大小为300、246个字符的命令等
带有相应输出的示例代码:
设置:
from pexpect import pxssh
conn = pxssh.pxssh()
conn.login(host, user, password)
conn.setwinsize(500, 200)
conn.setecho(False)
conn.sendline('')
conn.prompt(1)
conn.prompt(1)
正确的预期输出:
conn.sendline('l'*188)
conn.prompt(1)
conn.before
b'llll**snip**lllll\x1b[Kl\r\n-sh: lllll*snip*lllll: command not found\r\n'
输出不正确:
conn.sendline('l'*189)
conn.prompt(1)
conn.before
b'lllll**snip**lllll\r\x1b[A'
正确的预期输出:
conn.sendline('l'*190)
conn.prompt(1)
conn.before
b'lllll**snip**llllll\x1b[Kl\r\n-sh: lllll**snip**llllll: command not found\r\n'
有人知道是什么引起的吗?你知道吗
以防将来有人遇到这个问题。当length=window size-length-of-prompt的命令导致额外的提示错误地插入到传入数据中,进而导致输出错误地返回时,就会发生此问题。你知道吗
有关详细信息,请参见:https://github.com/pexpect/pexpect/issues/552
相关问题 更多 >
编程相关推荐