2009-10-04 9 views
5

J'ai une application ncurses qui vérifie la taille du terminal au démarrage et sort immédiatement si elle ne correspond pas. Dans Linux, la taille par défaut est 80x24, cette application nécessite au moins 25. Le correctif est facile, je ne fais que redimensionner la fenêtre d'émulation de terminal (en X) avant d'exécuter l'application ncurses.Comment définir explicitement la taille du terminal lors de l'utilisation pexpect

Je voudrais automatiser l'application ncurses avec pexpect, mais je suis coincé parce qu'il considère que la taille du terminal est inférieure à celle requise lors du lancement via pexpect, donc il ne fonctionne pas. Un moyen de spécifier explicitement la taille du terminal avec pexpect au démarrage?

Répondre

5

Essayez de définir les variables d'environnement et COLONNES LIGNES avant d'utiliser pexpect.

pexpect passera sur l'environnement à la sous-tâche, et certains (tous?) Malédictions programmes lisent ces variables d'environnement avant de commencer.

par exemple

import os 
os.environ['LINES'] = "25" 
os.environ['COLUMNS'] = "80" 
# run pexpect stuff as before 
+0

Merci, cela a fonctionné. –

3

Vous pouvez également utiliser:

import pexpect 
child = pexpect.spawn(cmd) 
child.setwinsize(400,400) 
Questions connexes