小编Nuc*_*Dog的帖子

Debian SSH - 调整终端大小未向 bash 注册

由于磁盘故障,我们最近重新安装了我们的服务器,现在我们在调整终端大小时遇到​​了问题。我们安装了 Debian 6.0.6。

症状

当您调整终端大小时,似乎没有基于 ncurses 的应用程序(已测试:ytalk、irssi、screen、tmux、一些 ncurses 示例应用程序)正确调整大小。屏幕通常以空白结束。在应用程序中强制重绘将使用旧的终端大小重绘。

在 bash (4.1.5(1)) 提示符下调整窗口大小时,COLUMNS 和 LINES 变量永远不会更新。

诊断

试图在 bash 中捕获 SIGWINCH,它似乎从未被接收到。这是经过测试的:

trap 'touch /home/user/sigwinch' SIGWINCH
trap 'touch /home/user/sigusr1' SIGUSR1
kill -s SIGWINCH $$
kill -s SIGUSR1 $$
Run Code Online (Sandbox Code Playgroud)

这应该在我的主目录中创建了这两个文件。它只创建了/home/user/sigusr1.

尝试kill -s SIGWINCH $$不会导致 $COLUMNS/$LINES 变量的更新。

启用checkwinsize( shopt -s checkwinsize) 将导致 bash 在从任何应用程序返回时更新 $COLUMNS/$LINES(如预期)。在checkwinsize启用启用的终端调整大小后,这会导致以下结果:

$ echo $COLUMNS ; ls > /dev/null ; echo $COLUMNS
72
107
Run Code Online (Sandbox Code Playgroud)

将我的登录 shell 更改为 tcsh 之类的内容并尝试调整终端的大小按预期工作,就像我测试的其他盒子上的 bash 一样。 …

debian bash term

11
推荐指数
1
解决办法
4216
查看次数

标签 统计

bash ×1

debian ×1

term ×1