我确定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.