Я недавно обновил (с помощью apt-get dist-upgrade
) свои Kubuntu и Lubuntu Linux, и теперь каждый раз, когда я захожу на одну из этих машин, я получаю следующее сообщение:
tput: No value for $TERM and no -T specified
Вот скриншот точного сообщения:
Это происходило как на моей машине Lubuntu, так и на машине Kubuntu, и это не было проблемой, пока я не обновился; поэтому я подозреваю, что это была не ошибка пользователя.
Как я могу это исправить?
ОБНОВИТЬ
Я отследил это до моего файла .bashrc, который вызывается моим файлом .profile. Хотя тот факт, что мой файл .bashrc теперь запускается, когда я делаю вход в систему с графическим интерфейсом, в то время как это было до обновления, немного странно. И нет, я недавно не модифицировал ни мой файл .bashrc, ни мой .profile. Кроме того, bash не моя оболочка по умолчанию.
Проблема в том, что я звоню tput
в своем файле .bashrc, чтобы установить переменные для использования при добавлении цвета в подсказку. Но в (неподходящее) время, когда мой файл .bashrc теперь запускается, $TERM
не устанавливается.
fgRed=$(tput setaf 1) ; fgGreen=$(tput setaf 2) ; fgBlue=$(tput setaf 4)
fgMagenta=$(tput setaf 5) ; fgYellow=$(tput setaf 3) ; fgCyan=$(tput setaf 6)
fgWhite=$(tput setaf 7) ; fgBlack=$(tput setaf 0)
bgRed=$(tput setab 1) ; bgGreen=$(tput setab 2) ; bgBlue=$(tput setab 4)
bgMagenta=$(tput setab 5) ; bgYellow=$(tput setab 3) ; bgCyan=$(tput setab 6)
bgWhite=$(tput setab 7) ; bgBlack=$(tput setab 0)
Обновленный вопрос: как мне это исправить? Должен ли я установить $TERM
себя? Или я просто не должен устанавливать эти переменные, если $TERM
не установлен?
ОБНОВЛЕНИЕ 2
Одно из решений, которое я попробовал, состояло в том, чтобы проверить, $TERM
было ли установлено. Но это не сработало; Я все еще получил то же сообщение об ошибке. Вот код:
if [ ! "$TERM" = "" ]; then
#Do stuff here
fi
Таким образом, очевидно, $TERM
был установлен, но tput
все же пришел к выводу, что это не так
.profile
запускается независимо от оболочки по умолчанию