7

我有一个 ncurses 应用程序,它在启动时检查终端大小,如果不合适就立即退出。

在 Linux 中,默认大小为 80x24,此应用程序至少需要 25 个。修复很简单,我只是在运行 ncurses 应用程序之前调整终端仿真窗口(在 X 中)的大小。

我想用 pexpect 自动化 ncurses 应用程序,但我被卡住了,因为它认为终端尺寸小于通过 pexpect 启动时所需的尺寸,所以它不会运行。有什么方法可以在启动时用 pexpect 明确指定终端大小?

4

2 回答 2

9

您还可以使用:

import pexpect
child = pexpect.spawn(cmd)
child.setwinsize(400,400)
于 2012-06-08T09:41:01.933 回答
7

在使用 pexpect 之前尝试设置 LINES 和 COLUMNS 环境变量。

Pexpect 会将环境传递给子任务,并且一些(全部?)curses 程序会在启动前读取这些环境变量。

例如

import os
os.environ['LINES'] = "25"
os.environ['COLUMNS'] = "80"
# run pexpect stuff as before
于 2009-10-04T11:20:19.737 回答