최근에 apt-get dist-upgrade
Kubuntu 및 Lubuntu Linux 상자를 업그레이드 (사용 )했으며 이제 이러한 컴퓨터 중 하나에 로그인 할 때마다 다음 메시지가 표시됩니다.
tput: No value for $TERM and no -T specified
다음은 정확한 메시지의 스크린 샷입니다.
이것은 내 Lubuntu 컴퓨터와 Kubuntu 컴퓨터 모두에서 발생했으며 업그레이드 할 때까지 문제가되지 않았습니다. 그래서 나는 사용자 오류가 아니라고 생각합니다.
이 문제를 어떻게 해결할 수 있습니까?
최신 정보
내 .profile 파일에 의해 호출되는 .bashrc 파일로 이것을 추적했습니다. 하지만 업그레이드하기 전에는 수행하지 않았지만 GUI 로그인을 수행 할 때 내 .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
여전히 아니었다 결론을 내렸다.
궁극적으로 저에게 효과가 있었던 것은 쉘이 대화 형 쉘인지 확인하는 것이 었습니다. unix.stackexchange : How to check if a shell is login / interactive / batch 에있는이 다른 게시물에 대한 솔루션을 기반으로했습니다 .
따라서 솔루션의 코드는 다음과 같습니다.
if [[ $- == *i* ]]; then
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)
fi
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다