通过ssh运行top时的奇怪行为



很奇怪

ssh user@192.168.1.59 bash -c "top"

ssh user@192.168.1.59 "top"

按预期工作,而

ssh user@192.168.1.59 "ls"  

ssh user@192.168.1.59 bash -c "ls"  

工作做好。

以下是前一个命令的错误信息输出。

TERM environment variable not set.

我搜索并找到了这篇文章。

根据上述帖子,有一个answer对这件事有一些启示。

你可以看到它是否真的没有设置。执行命令set | grep TERM。如果没有,可以这样设置:export TERM=xterm

我试着

ssh user@192.168.1.59 bash -c "set | grep TERM;top"

,输出为

TERM=dumb
TERM environment variable not set.

,这是我所期望的。

然后我尝试将XTERM设置为帖子告诉我的内容,但它不起作用。我又卡住了。下面是我设置XTERM并运行top的命令:

ssh user@192.168.1.59 bash -c "export TERM=xterm-256color; top"
以下是上述命令的输出:
declare -x DISPLAY="localhost:13.0"
declare -x LANG="en_US.UTF-8"
declare -x LC_ALL="C"
#...
TERM environment variable not set.
有没有人能对这件事说明一下?

尝试使用-t选项为ssh会话分配一个伪终端。例如

ssh -t user@192.168.1.59 top

最新更新