別の「画面」に出力を表示し、完了すると正常に戻ります。

別の「画面」に出力を表示し、完了すると正常に戻ります。

less vim nanoなどを使用して同様の動作が必要です。

bashを使ってこれを達成できますか?

ベストアンサー1

less端末エミュレータがそれをサポートしている場合は、、、vimなどで使用されるのと同じメカニズム、つまりtitermcapte機能(smcupおよびrmcup最新のterminfo)を使用してこれを実行できます。彼らはそれぞれメイン画面からセカンダリ画面に切り替えてから戻ります。

システムにこのコマンドがある場合は、次のものをtput使用できます。

tput smcup # switch to secondary screen
...
tput rmcup # switch back to primary screen

それ以外のxterm場合は、他のほとんどの端末エミュレータでは次のようになります。

printf '\e[7\e[?47h'

次のようにセカンダリ画面に切り替える必要があります。

printf '\e[2J\e[?47l\e8'

ホーム画面に戻ります(そしてカーソルを元の位置に戻す必要があります)。

echotctcshには、次のことができるコマンドが組み込まれています。

tcsh -c 'echotc ti'
...
tcsh -c 'echotc te'

echotc(またはtcshを使用している場合は直接)。

おすすめ記事