Atualizei recentemente (com apt-get dist-upgrade
) minhas caixas Kubuntu e Lubuntu Linux e agora toda vez que faço login 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 nas máquinas Lubuntu e Kubuntu, e não foi um problema até depois da atualização; então eu suspeito que não foi um erro do usuário.
Como posso consertar isso?
ATUALIZAR
Eu rastreei isso no meu arquivo .bashrc, que está sendo chamado pelo meu arquivo .profile. No entanto, o fato de o meu arquivo .bashrc agora ser executado quando eu faço um login na GUI, enquanto não era antes da atualização é um pouco estranho. E não, 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 usar 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 me colocar $TERM
? Ou devo apenas não definir essas variáveis se $TERM
não estiver definido?
ATUALIZAÇÃO 2
Uma solução que tentei foi verificar se $TERM
estava definido. Mas isso não parecia funcionar; Ainda recebi a mesma mensagem de erro. Aqui está o código:
if [ ! "$TERM" = "" ]; then
#Do stuff here
fi
Então, aparentemente, $TERM
foi definido, mas tput
ainda concluiu que não era.
.profile
é executado independentemente do shell default