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 -e私のスクリプトは、およびprintf文で出力に色を使用します

4

1 に答える 1

0

ダブルバッファに最も近いのは rici の答えです。画面をクリアする# do things and printに、出力を一時ファイルにリダイレクトしてすべてのことを行います。次に、画面をクリアして一時ファイルを cat します。

または、カーソルをクリアせずに画面の上部に移動して、そこにあるものを上書きすることもできます。ただし、新しいテキストの末尾を超えて残っている古いテキストをすべて消去する必要があります。

于 2012-12-04T03:55:42.250 に答える