Я хотел бы настроить тип терминала, определив его. Например, когда я подключаюсь к Solaris с помощью PuTTY, $TERM
переменная установлена в vt100
. Я хотел бы договориться об этом, чтобы, когда эмулятор терминала является PuTTY, установить $TERM
к xterm
.
Я заметил это в ^ E PuTTY отвечает PuTTY
. Но я думаю, что лучший способ - использовать tput
чтобы попытаться определить тип эмулятора терминала. Проблема в том, что я не нашел ни одной ссылки в terminfo
или tput
мануал как это сделать.
В противном случае я попробую что-нибудь на основе:
unset remote_term;echo $'\cE';read -rt 1 -n5 remote_term ;echo remote_term=$remote_term
Возможно, это слишком просто, но если вас беспокоит ваш пользовательская среда (и при условии, что у каждого есть собственная учетная запись, и не происходит сумасшедшего совместного использования учетной записи, когда группа людей использует одну и ту же комбинацию имени пользователя и пароля) ...
Почему бы просто не добавить что-нибудь в файл окружения вашей оболочки?
Korn (/ bin / ksh) Оболочка (~ / .kshrc)
##############################################################################
## TERM control - if we're on the console, fix it up.
TTY=` /usr/bin/tty ` # Really should call /bin/tty in HP-UX in case of S.U.M.
TTY_DEV=${TTY##*/dev/}
if [[ ${TTY_DEV} = "console" ]]; then
## Most serial-line consoles report "/dev/console" when you use 'tty'
## Since most consoles don't set their columns and rows, resulting in weird
## stuff when we open things like 'vi', we call 'resize' (if it's present)
if [[ -x /usr/openwin/bin/resize ]]; then
printf "Console...\c"
export PATH=${PATH}:/usr/openwin/bin && \
/usr/openwin/bin/resize >/dev/null 2>&1 && \
printf "fixed. \n" || \
printf "something's broke.\n"
elif [[ -x /usr/bin/X11/resize ]]; then
printf "Console..."
export PATH=${PATH}:/usr/bin/X11 && \
/usr/bin/X11/resize >/dev/null 2>&1 && \
printf "fixed. \n" || \
printf "something's broke.\n"
else
printf "No resize binary found, check console settings.\n"
fi
else
TERM=xterm
fi
Bourne Again (/ bin / bash) Оболочка (~ / .bashrc ~ / .bash_profile)
(Приведенный выше код должен работать без проблем)
Обычная оболочка Борна (/ bin / sh) (~ / .profile)
(Приведенный выше код, но / bin / sh не выполняет разделение переменных, поэтому TTY_DEV должен быть более креативным.)
Есть ли причина, по которой вы не можете просто установить параметры подключения в PuTTY для согласования желаемого типа терминала?
В конфигурации PuTTY щелкните «Соединение» -> «Данные», а затем установите «Строка типа терминала» в разделе «Сведения о терминале» на любой желаемый тип терминала. У меня установлено значение ansi, но вы можете легко изменить его на xterm.
Это более элегантно, чем перехват ответа Ctrl-E, поскольку он учитывает намерения пользователя для типа терминала.