我有一个每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
}
以前的工作很好但是当脚本打印在refesh之间很难看时,存在某种双缓冲。
我的脚本使用echo -e
和printf
句子
答案 0 :(得分:0)
最接近双缓冲区的是rici的答案:将所有# do things and print
内容输出重定向到临时文件,在清除屏幕之前;然后清除屏幕并捕捉临时文件。
或者您可以将光标移动到屏幕顶部而不清除它,然后覆盖那里的光标。但是,您有责任清除延伸到新文本末尾的任何剩余旧文本。