Ubuntu LTS 18.04 没有指定 $TERM 值且没有指定 -T

Ubuntu LTS 18.04 没有指定 $TERM 值且没有指定 -T

我编辑了用户和 root 用户主目录中的 .bashrc 和 .bash_profile 文件。一切正常。大约一周后,重新启动时出现此错误,但一切仍然正常:
“TPUT:$TERM 没有值,且未指定 -T。TPUT
:$TERM 没有值,且未指定 -T。TPUT: $TERM 没有值
,且未指定 -T。TPUT
:$TERM 没有值,且未指定 -T。TPUT
:$TERM 没有值,且未指定 -T。TPUT
:$TERM 没有值,且未指定 -T。TPUT
:$TERM 没有值,且未指定 -T。TPUT
:$TERM 没有值,且未指定 -T。因此,配置文件将无法正确配置,请尽快修复此问题。”

如您所见,我遇到了 8 次错误,这正是我用来定义 PS1 变量的行数;每行都有tput内容。我该如何修复这个问题,它是什么?我的终端配置文件运行正常。PS
:这不是重复的,因为我没有做任何事情,例如运行 Windows 应用程序、内核/操作系统调整或 ssh。

答案1

您的错误消息基本上告诉您该$TERM变量未定义。很可能发生了一些事情导致您的 shell 获得不再设置此变量的环境:OS/terminal/sshd 更新、不同的终端等。如果您没有$TERM在某个自定义 shell 启动文件中明确定义,那么它一定是在其他地方定义的,而更新可能已删除/破坏了该定义。这里有很多变量在起作用,如果不深入挖掘,就不可能查明实际原因。

然而,解决方案可能相对简单:只需$TERM.bash_profile或中定义/etc/profile并将其设置为有意义的内容,例如:

export TERM=screen-256color

这应该适用于大多数现代 Linux 发行版,当然也适用于 Ubintu。

答案2

我找到了答案,不过还是感谢您的帮助!

问题在于我的.bashrc文件用来tput设置PS1的颜色。但有时,该.bashrc文件是在终端环境之外执行的,那里没有PS1变量。解决方案很简单:我if在 .bashrc文件中放置了一个语句,这样我的变量只有在终端环境中执行PS1时才会更改。.bashrc

     if [[ $- == *i* ]]
then
     PS1="\[$(tput setaf 252)\][user]"

附言:我在另一个答案中找到了这个,但我再也找不到它了。

相关内容