批处理模式SSH提供错误“TERM环境variables未设置”

我确定TERM是在.bashrc中定义的。

但是,在批处理模式下运行ssh时,我得到:

$ ssh pc-lab7 "echo $TERM; echo $0" TERM environment variable not set. linux -bash 

如果我在交互模式下运行ssh,我不会看到这个错误。

我怎样才能消除这个错误信息?

我终于找到了这个恼人的“TERM环境变量未设置”警告的原因。

事实证明,当ssh在没有交互式用户的批处理模式下执行时,在启动脚本中调用'clear'命令将会产生这个错误。

评论脚本中的“清晰”行,为我解决了这个问题。

使用-t选项来分配tty

  -t Force pseudo-tty allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, eg when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.