【发布时间】:2021-05-27 09:25:17
【问题描述】:
我编写的程序经常崩溃,使终端处于 S-Lang 库状态(类似于 ncurses)。我想在开发的分支 Makefile main all 目标中添加一个检查,以检查这种不正确的状态,并自动调用 reset 命令。如何完成这项任务?
【问题讨论】:
标签: console console-application reset xterm pty
我编写的程序经常崩溃,使终端处于 S-Lang 库状态(类似于 ncurses)。我想在开发的分支 Makefile main all 目标中添加一个检查,以检查这种不正确的状态,并自动调用 reset 命令。如何完成这项任务?
【问题讨论】:
标签: console console-application reset xterm pty
reset 做了两件事;您可以编写一个检测其中之一的 shell 脚本:
stty 检查)对于后者,您会发现很难确定当前选择的字符集,例如画线。如果终端设置为显示画线字符,这就是人们想要运行 reset 的常见原因(例如,将二进制文件放到屏幕上)。
恰好有一个 VT320 功能 (DECCIR) 可以提供此信息(由 xterm 实现):
但对于其他终端,您不太可能发现它已实现:
(iTerm2 不这样做)
(VTE 也没有)。您可以在vt100.net 上阅读 VT510 手册中描述该功能的摘录
【讨论】: