SSH tput 警告/通知(错误?)

dtb*_*rne 3 linux ssh

我最近在直接通过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,则永远不会看到错误。

gee*_*aur 7

很可能tput在用户的.bashrcon 中有一个命令beta,它不会费心检查 shell 是否是交互式的。这不仅会中断ssh,还会中断调用 shell 进行文件名扩展的各种程序(在vi/ nvi/ 中带有通配符的文件名vim、Perl 的<*>glob 运算符等)。

使用与 Bourne/POSIX 兼容的 shell,您应该测试i标志 in$-或测试$PS1非空(前者是官方方式);与csh/tcsh你测试$?prompt