我最近在直接通过ssh
命令运行命令时开始收到以下错误:
tput:没有 $TERM 的值,也没有指定 -T
我从一个 linux box(我们将称为alpha)运行到 box beta以产生错误的命令是:
[dtbarne@alpha ~]$ ssh beta ls
Run Code Online (Sandbox Code Playgroud)
一切似乎都很好,我只收到 33 行上述错误。如果我尝试对另一台服务器运行相同的命令,例如[dtbarne@alpha ~]$ ssh charlie ls
,我看不到错误,因此它似乎与beta隔离。
但是,如果我使用 just 进入会话,[dtbarne@alpha ~]$ ssh beta
然后运行 ls,则永远不会看到错误。
很可能tput
在用户的.bashrc
on 中有一个命令beta
,它不会费心检查 shell 是否是交互式的。这不仅会中断ssh
,还会中断调用 shell 进行文件名扩展的各种程序(在vi
/ nvi
/ 中带有通配符的文件名vim
、Perl 的<*>
glob 运算符等)。
使用与 Bourne/POSIX 兼容的 shell,您应该测试i
标志 in$-
或测试$PS1
非空(前者是官方方式);与csh
/tcsh
你测试$?prompt
。
归档时间: |
|
查看次数: |
2681 次 |
最近记录: |