程序(特别是Linux)如top
如何在不滚动的情况下将界面保留在屏幕上?他们是创建一个新的screen
会话,还是有一个标准库来创建这样的GUI?如果他们确实使用了屏幕,那么为什么当我退出顶部时输出仍然写入stdout?
答案 0 :(得分:1)
有一个标准库,名为ncurses。但是没有必要使用它 - console_codes(4)手册页描述了如何通过向终端(模拟器)编写特殊字符序列来完成这些操作,而curses只不过是一个包装器。
要像顶部一样清除屏幕,您需要向终端回显ESC [ 2 J
以清除它,然后ESC [ H
将光标重置为原点,即
echo -ne "\033[2J\033[H"
请注意,top可能实际上更智能,不会重绘整个屏幕,只会重绘部分。有关详细信息,请参见手册页。 (您可以使用控制台代码执行更多花哨的操作,例如更改颜色,下划线,粗体,甚至在x终端中使用鼠标。)