Niedawno zaktualizowałem (wraz z apt-get dist-upgrade
) moim systemem Linux Kubuntu i Lubuntu, a teraz za każdym razem, gdy loguję się do jednej z tych maszyn, pojawia się następujący komunikat:
tput: No value for $TERM and no -T specified
Oto zrzut ekranu z dokładną wiadomością:
Stało się tak zarówno na mojej maszynie Lubuntu, jak i na maszynie Kubuntu, i nie było problemu, dopóki nie zaktualizowałem; więc podejrzewam, że to nie był błąd użytkownika.
Jak mogę to naprawić?
AKTUALIZACJA
Śledziłem to do mojego pliku .bashrc, który jest wywoływany przez mój plik .profile. Chociaż fakt, że mój plik .bashrc jest teraz uruchomiony, gdy loguję się w interfejsie GUI, a nie przed aktualizacją, jest trochę dziwny. I nie, nie zmodyfikowałem ostatnio mojego pliku .bashrc ani .profile. Poza tym bash nie jest moją domyślną powłoką.
Problem polega na tym, że dzwonię tput
w pliku .bashrc, aby skonfigurować zmienne do użycia w dodawaniu kolorów do monitu. Ale w (nieodpowiednim) czasie, gdy mój plik .bashrc jest teraz uruchamiany, $TERM
nie jest ustawiony.
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)
Zaktualizowane pytanie: Jak to naprawić? Czy powinienem się ustawić $TERM
? A może powinienem po prostu nie ustawiać tych zmiennych, jeśli $TERM
nie są ustawione?
AKTUALIZACJA 2
Jednym z rozwiązań, które próbowałem, było sprawdzenie, czy $TERM
zostało ustawione. Ale to nie działało; Nadal pojawia się ten sam komunikat o błędzie. Oto kod:
if [ ! "$TERM" = "" ]; then
#Do stuff here
fi
Najwyraźniej tak $TERM
było , ale tput
doszło do wniosku, że tak nie było.
.profile
działa niezależnie od domyślnej powłoki