代替画面は、vim、htop、screen、alsamixer、less などの多くの「ユーザー対話型」ターミナル アプリケーションで使用されます。アプリケーションが終了すると消える、ターミナル コンテンツの別のバッファのようなものです。復元され、アプリケーションが何も出力していないように見えます。
私自身のシェル (bash) スクリプトでまったく同じことを実現したいと考えていますが、移植性がそれほど高くなくてもかまいません。私は Linux のみと xterm ベースのターミナル エミュレーターに固執します。しかし、解決策はtput
可能であれば次のようなものを使用する必要があります。ただし、外部のスクリプト言語 (または C など) は使用したくありません。
私は C を使用したくありませんが (可能な限り依存関係の少ない bash スクリプトにする必要があるため)、less のソース コードを調べました。terminfo をデータベースとして使用しているようで、初期化時に「ti」端末機能を検索します。行を削除すると、代替画面が使用されないため、責任のあるコード行が見つかったと想定しました。
しかし、私はそのような機能を見つけることができませんman terminfo
. しかし、おそらく私はこれに対する解決策を見つけるのに間違った道を進んでいます。たぶん、terminfo / tput は私の友達ではありません。
では、(どのように) bash スクリプトで代替画面を使用できますか? ソースコードにヒントがある簡単なアプリケーションを知っている人はいますか? (C アプリケーションや bash スクリプトなど...)