Gần đây tôi đã nâng cấp (với apt-get dist-upgrade) các hộp Kubfox và Lubfox Linux của mình và bây giờ mỗi lần tôi đăng nhập vào một trong những máy này, tôi nhận được thông báo này:
tput: No value for $TERM and no -T specified
Đây là một ảnh chụp màn hình của thông điệp chính xác:

Điều này đã xảy ra trên cả máy LubFi của tôi và máy Kubfox và nó không phải là vấn đề cho đến khi tôi nâng cấp; Vì vậy, tôi nghi ngờ rằng đó không phải là lỗi người dùng.
Làm thế nào tôi có thể sửa lỗi này?
CẬP NHẬT
Tôi đã theo dõi điều này xuống tệp .bashrc, tệp này được gọi bởi tệp .profile của tôi. Mặc dù vậy, thực tế là tệp .bashrc của tôi bây giờ chạy khi tôi đăng nhập GUI trong khi trước khi tôi nâng cấp thì hơi lạ. Và không, tôi đã không sửa đổi tệp .bashrc hoặc .profile của tôi gần đây. Ngoài ra, bash không phải là vỏ mặc định của tôi.
Vấn đề là tôi đang gọi tputtrong tệp .bashrc của mình để thiết lập các biến để sử dụng trong việc thêm màu vào dấu nhắc. Nhưng tại thời điểm (không phù hợp) khi tệp .bashrc của tôi bây giờ được chạy, $TERMkhông được đặt.
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)
Câu hỏi cập nhật: Làm thế nào tôi nên sửa lỗi này? Tôi có nên đặt $TERMmình? Hoặc tôi chỉ không nên đặt các biến này nếu $TERMkhông được đặt?
CẬP NHẬT 2
Một giải pháp tôi đã thử là kiểm tra xem $TERMđã được đặt chưa. Nhưng điều này dường như không hoạt động; Tôi vẫn nhận được thông báo lỗi tương tự. Đây là mã:
if [ ! "$TERM" = "" ]; then
#Do stuff here
fi
Vì vậy, rõ ràng $TERM đã được thiết lập, nhưng tputvẫn kết luận là không.
.profilechạy bất kể vỏ mặc định