Eu atualizei recentemente (com apt-get dist-upgrade
) minhas caixas Kubuntu e Lubuntu Linux, e agora toda vez que eu faço logon em uma dessas máquinas, recebo esta mensagem:
tput: No value for $TERM and no -T specified
Aqui está uma captura de tela da mensagem exata:
Isso aconteceu tanto na minha máquina Lubuntu quanto na máquina Kubuntu, e não foi um problema até que eu atualizasse; então eu suspeito que não foi erro do usuário.
Como posso corrigir isso?
UPDATE
Eu rastreei isso até o meu arquivo .bashrc, que está sendo chamado pelo meu arquivo .profile. No entanto, o fato de que meu arquivo .bashrc agora é executado quando eu faço um login GUI, enquanto ele não fez antes de eu atualizar é um pouco estranho. E não, eu não modifiquei meu arquivo .bashrc ou meu .profile recentemente. Além disso, o bash não é meu shell padrão.
O problema é que estou chamando tput
no meu arquivo .bashrc para configurar variáveis para uso na adição de cores ao prompt. Mas no momento (inapropriado) quando meu arquivo .bashrc agora é executado, $TERM
não está definido.
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)
Pergunta atualizada: Como devo corrigir isso? Devo definir $TERM
eu mesmo? Ou devo apenas não definir essas variáveis se $TERM
não estiver definido?
UPDATE 2
Uma solução que tentei foi verificar se $TERM
estava definido. Mas isso não parece funcionar; Eu ainda recebi a mesma mensagem de erro. Aqui está o código:
if [ ! "$TERM" = "" ]; then
#Do stuff here
fi
Portanto, aparentemente $TERM
foi definido, mas tput
ainda concluiu que não era.