【发布时间】:2012-04-08 14:22:31
【问题描述】:
我确保在 .bashrc 中定义了 TERM。
但是,在批处理模式下运行 ssh 时,我得到:
$ ssh pc-lab7 "echo $TERM; echo $0"
TERM environment variable not set.
linux
-bash
如果我在交互模式下运行 ssh,我看不到这个错误。
如何消除此错误消息?
【问题讨论】:
-
只有交互式 shell 读取
~/.bashrc。使用~/.bash_profile(但请记住,在其中定义TERM可能是个坏主意)。 -
我尝试使用 ~/.bash_profile 并将其导出到那里,但我仍然看到相同的错误。我什至尝试在 /etc/profile 中设置它,但没有看到输出有任何差异。
-
哦,对不起,完全搞砸了
~/.bash_profile只能由 login shell 读取。非交互式 shell 不会自动执行任何 .rc 文件。 -
我明白了。非常感谢您的回答。有没有办法为非交互式 SSH 设置 TERM。我正在尝试安装一个尝试以批处理模式进行 SSH 的软件,但它失败了,因为输出的第一行是“未设置 TERM 环境变量”我无法修改它执行的命令。
-
我不知道你的系统出了什么问题,通常应该设置 TERM,即使设置为“哑”。也许它没有在本地机器上设置?