一些程序如何编辑终端上显示的内容(随机举个例子,比如 'sl' 程序)?我指的是 Linux 终端,其他操作系统可能也有类似情况,但我不确定。 我一直以为一旦显示了某段文本,它就一直停留在那里。那么如何在不重新绘制整个屏幕的情况下更改它呢?
根据终端类型,您可以发送控制序列。常见的序列例如esc [; H,将光标发送到特定位置(例如在Ansi、Xterm、Linux、VT100上)。但是,这会因用户所拥有的终端类型而异... curses(与terminfo文件配合使用)将为您包装该信息。
试试这个shell脚本
#!/bin/bash
i=1
while [ true ]
do
echo -e -n "\r $i"
i=$((i+1))
done
NCurses 是一个跨平台的库,可以让你在智能终端上绘制用户界面。
我同意danio的看法,ncurses是正确的选择。以下是一份不错的教程:
cat
或less
中查看二进制文件会破坏我的终端了...它总是会更改字符集,我不得不重新启动,哈哈。 - krs013