![如何在 Bash 脚本中禁用终端滚动?](https://linux22.com/image/142692/%E5%A6%82%E4%BD%95%E5%9C%A8%20Bash%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E7%A6%81%E7%94%A8%E7%BB%88%E7%AB%AF%E6%BB%9A%E5%8A%A8%EF%BC%9F.png)
当使用类似程序时htop
- 鼠标滚轮动作不会执行任何操作。
如何在 Bash 脚本中重现此类行为?
我想应该有一种方法告诉终端忽略滚动请求。这是怎么做到的?
答案1
htop
恰好使用ncurses
ncurses(以及其他在终端中使用全屏的东西)使用 terminfo 功能初始化终端smcup
。对于 xterm(以及模仿它的终端仿真器),切换到备用屏幕。这些终端可能会通过发送上/下光标键来响应滚轮鼠标,而不是滚动终端窗口(您将htop
通过焦点线上/下移动看到该窗口)。您的 bash 脚本可能会看到这些光标键,但无法处理它们。
您可以使用以下命令在脚本中试验该功能
tput smcup
切换到备用屏幕,以及
tput rmcup
切换回正常屏幕。