pexpect的setwinsize
之前,写过一篇“Ubuntu下使用pexpect自动ssh和scp”
使用pexpect一切运行很好
但是当你ssh到远端server后,如果输入的某个命令过长
它没有自动折行,仍然是在同一行,会把之前的字符给覆盖掉
上网google解决方案,没有搜到有用的信息,郁闷了好多天...
今天,查看pexpect的API手册,发现了里面一个这样的函数setwinsize
很怀疑是它造成的问题,查看了pexpect的源码,里面有这么一行:
又查看了一下它自动覆盖的字符的长度,果然是80个字符
而在我的显示器上,80个字符并没有到达term的最大宽度
于是,在调用interact之前,根据自己的term大小重新设置一下参数:
再运行程序,就ok了
我也遇到这个问题了,setwinsize还不生效,要把pexpect.py中的self.setwinsize这行注释再set才生效。
长度生效了.但是没有自动换行.还是会覆盖同一行的输入