伪TTY行限制为256个字符?

时间:2011-03-31 15:04:22

标签: shell ssh tty beep plink

通过Plink(PuTTY)从Windows机器打开SSH连接到solaris服务器:

Plink.exe -t <hostname> /bin/bash

然后将一个bash命令行写入Plink.exe的stdin,并由远程/bin/bash进程解析并执行。

只要bash命令行不超过256个字符,它就可以正常工作。写入256个字符后,不再回显字符,而是为每个附加字符返回BEEP(ASCII代码7)。

(使用/bin/bash而不是直接调用脚本似乎很奇怪,但这是更复杂场景的简化示例)

如果使用-t标志,似乎只会出现256个字符的限制,但在solaris服务器上执行的命令需要TTY。

Plink.exe进程是从Windows机器上的JVM启动的。

我尝试使用PuTTY会话配置加载Plink.exe,其中“Local line editing”和“Local echo”都关闭,但行为是相同的。

SSH客户端(Plink.exe)或服务器端(Solaris,OpenSSH,Bash)是否有256个字符的限制?

如何避免256个字符的限制?

1 个答案:

答案 0 :(得分:0)

逐行读取规范模式下的TTY输入,并且非常大的行可能不适合输入队列。通过在原始模式下设置TTY,可以直接读取每个字符,并且行可以大于输入队列。

问题解决了:“stty raw”。