如何解决使用“expect”时远程终端屏幕混乱的问题? (通常在调整大小之后)

如何解决使用“expect”时远程终端屏幕混乱的问题? (通常在调整大小之后)

使用expectssh 和密码自动登录远程,调整窗口大小时,stty size报告旧大小。导致诸如vim和 之类的命令变得less混乱。

答案1

经过长时间的搜索和测试,终于找到了expect问题的原因,默认情况下expect不会转发WINCH信号,这可以通过trap命令修复,如下所示

trap {
 #fetch rows and cols from controlling terminal
 #note  [] is tcl way of call and here the stty is expect's not system's which not support "stty rows" to query rows
 set rows [stty rows]
 set cols [stty columns]
 #send "echo size changed to $rows $cols\r"
 #according to the man page, the variable spawn_out(slave,name) is set to the name of the pty slave device
 stty rows $rows columns $cols < $spawn_out(slave,name)
} WINCH

在我的预期文件的开头添加此内容后,一切正常。

感谢安尼什·斯内 (Anish Sneh)https://askubuntu.com/a/672919/1384831

想回答如何解决终端屏幕混乱的问题? (通常在调整大小之后)但它受到保护,所以发布一个新问题。希望它能节省其他人的时间。

相关内容