如何在使用pexpect时显式设置终端大小
我有一个使用ncurses的应用程序,它在启动时会检查终端的大小,如果不合适就会立刻退出。
在Linux系统中,默认的终端大小是80列和24行,而这个应用程序至少需要25行。解决这个问题很简单,我只需要在运行ncurses应用程序之前,调整终端模拟窗口的大小(在X环境下)。
我想用pexpect来自动化这个ncurses应用程序,但遇到了问题,因为通过pexpect启动时,它认为终端的大小不够,所以应用程序无法运行。有没有办法在启动时用pexpect明确指定终端的大小呢?
2 个回答
9
你还可以使用:
import pexpect
child = pexpect.spawn(cmd)
child.setwinsize(400,400)
7
在使用pexpect之前,试着先设置一下LINES和COLUMNS这两个环境变量。
pexpect会把这些环境变量传递给它启动的子任务,而一些(可能是所有)使用curses的程序在启动之前会读取这些环境变量。
比如:
import os
os.environ['LINES'] = "25"
os.environ['COLUMNS'] = "80"
# run pexpect stuff as before