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 tput
trong 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, $TERM
khô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 $TERM
mình? Hoặc tôi chỉ không nên đặt các biến này nếu $TERM
khô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 tput
vẫn kết luận là không.
.profile
chạy bất kể vỏ mặc định