У меня есть сервер Ubuntu, в котором есть скрипт Python, который запускает интерфейс терминала на основе команд. Я использую Plink для входа в систему и немедленно выполнить скрипт Python:

plink.exe -ssh -l goomuckel -pw greenpepper#7 192.168.1.201 "python server.py"

Тем не менее, я получаю следующее сообщение:

TERM environment variable not set.

Поэтому я создал скрипт sh (server.sh) на компьютере с Ubuntu:

export TERM=xterm
python server.py

Используя следующую команду plink:

plink.exe -ssh -l goomuckel -pw greenpepper#7 192.168.1.201 "sh server.sh"

Теперь я больше не получаю предупреждение, кажется, что скрипт python выполняется. Но вместо отображения интерфейса терминала, который я печатаю в скрипте python, печатаются только следующие символы:

←[H←[2J

Странно то, что при входе в систему вручную с помощью Putty и выполнении скрипта Python все работает нормально. Я попытался добавить флаг -t к plink, а затем скрипт выполняется. Однако я использую цвета для печати конечного текста, и цвета печатаются как текст, а не меняют цвета текста, как это отмечено в Putty.

Есть идеи, что я могу сделать?

0
goocreations 30 Янв 2013 в 14:13

2 ответа

Лучший ответ

Вам не нужно делать это в скрипте Python.

Вы можете просто изменить .profile - это файл, который система будет выполнять при каждом входе в систему - с тем же выражением, которое вы используете в скрипте Python

export TERM=xterm

(если вы используете Bash)

setnv TERM xterm

(для c-shell и аналогичных)

1
DonCallisto 30 Янв 2013 в 10:22

У меня была та же проблема, и установка переменной TERM до того, как команда устранила эту переменную среды TERM не установлена. Сообщение об ошибке:

plink.exe -ssh -l goomuckel -pw greenpepper#7 192.168.1.201 "export TERM=xterm; python server.py"

Это удобно, если вы не можете изменить файл .profile ...

0
pinkston00 14 Окт 2014 в 19:23