很奇怪
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