我编写了一个名为的脚本,tcpserver
它大量使用tput
和类似的命令。这些命令需要知道如何正确地写入终端并依靠变量TERM
来获取此信息。现在TERM
变量是从启动控制台继承的tcpserver
,我想改变这一点。
我的客户端是基于 telnet 的终端程序,如netcat
和telnet
。我怎样才能让这些程序将用户的终端类型传达给远程服务器?
答案1
您正在寻找的是所谓的“终端类型协商”,通常缩写为“termtype”。这允许支持 telnet 的客户端软件使用 telnet 转义协商带外的终端类型。
对于客户端一半,telnet
将自动尝试协商终端类型。netcat
另一方面,不假设远程服务器默认理解 telnet 转义,并且您需要使用-t
启用 telnet 协商的选项来运行它。
对于服务器端,我相信这将由你来实施,并且超出了 ServerFault 的主题范围。阅读RFC1091将会是一个好的开始。