0

我有一个脚本,每 N 秒循环打印一次信息

function exit_loop
{
    tput rmcup
    tput cnorm
    exit 0
}

function main_loop
{
    tput smcup
    tput civis

    trap exit_loop SIGINT

    while [ true ]; do
        sleep $DELAY &
        clear
        # do things and print
        wait
    done
}

以前的工作很好,但是当脚本在刷新之间打印时很难看,存在某种双缓冲区。

笔记

我的脚本在输出中使用颜色echo -eprintf句子

4

1 回答 1

0

最接近双缓冲区的是 rici 的回答:在清除屏幕之前# do things and print,将输出重定向到临时文件中做所有事情;然后清除屏幕并 cat 临时文件。

或者您可以将光标移动到屏幕顶部而不清除它,然后覆盖那里的内容。但是,您有责任清除超出新文本末尾的任何剩余旧文本。

于 2012-12-04T03:55:42.250 回答