我最近在直接通过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在用户的.bashrcon 中有一个命令beta,它不会费心检查 shell 是否是交互式的。这不仅会中断ssh,还会中断调用 shell 进行文件名扩展的各种程序(在vi/ nvi/ 中带有通配符的文件名vim、Perl 的<*>glob 运算符等)。
使用与 Bourne/POSIX 兼容的 shell,您应该测试i标志 in$-或测试$PS1非空(前者是官方方式);与csh/tcsh你测试$?prompt。
| 归档时间: |
|
| 查看次数: |
2681 次 |
| 最近记录: |