如何在 Bash 脚本中禁用终端滚动?

如何在 Bash 脚本中禁用终端滚动?

当使用类似程序时htop- 鼠标滚轮动作不会执行任何操作。

如何在 Bash 脚本中重现此类行为?

我想应该有一种方法告诉终端忽略滚动请求。这是怎么做到的?

答案1

htop恰好使用ncurses

ncurses(以及其他在终端中使用全屏的东西)使用 terminfo 功能初始化终端smcup。对于 xterm(以及模仿它的终端仿真器),切换到备用屏幕。这些终端可能会通过发送上/下光标键来响应滚轮鼠标,而不是滚动终端窗口(您将htop通过焦点线上/下移动看到该窗口)。您的 bash 脚本可能会看到这些光标键,但无法处理它们。

您可以使用以下命令在脚本中试验该功能

tput smcup

切换到备用屏幕,以及

tput rmcup

切换回正常屏幕。

相关内容