変更せずに端末で全文を下にスクロールするシェルスクリプト

変更せずに端末で全文を下にスクロールするシェルスクリプト

/bin/sh スクリプトを使用して、端末で数行のテキストを下にスクロールしようとします。この場合、smcup、rmcupを使用したソリューションは許可されません。

試した他の多くのオプションが失敗しました(次を含む)。ジェイドBP):

  • tput cup 0 0; tput ri
  • tput cup 0 0; tput rin 3

man terminfo は以下を指定するので、これは少し奇妙です。

テキストを下にスクロールするには、プログラムは画面の左上に移動してri(逆方向インデックス)文字列を送信します。文字列 ind と ri は、画面の対応する角にない場合は定義されません。

テストを実行する前に端末の出力をスクロールできる必要があります(テストの前にset、envを試してください)。

xtermのソリューションで十分です。

テストをスピードアップして明確にするには、このスクリプトを使用して始めます。

#!/bin/sh

# create scrollable text
set

# includes correction from JdeBP
# try to scroll text down one line
tput cup 0 0; tput ri

# includes correction from JdeBP
# try to scroll text down 3 lines
tput cup 0 0; tput rin 3

ベストアンサー1

tput cup 0 0, ri

これが失敗したことも当然です。これはないtputプログラムのコマンドライン構文

カップ0 0を入れる
ツーツリー

とても簡単です。

XTerm 以上の複雑なタスクを実行する上級ユーザー向けの注意事項:

  • 実際のターミナルと高品質のエミュレータでは、デフォルト以外の上部と下部の余白とオフの生モードが、モーションとスクロールするためにカーソルを配置する必要がある場所に影響します。 terminfoモデルが示唆するほど単純ではありません。たとえば、実際のDEC端末の詳細については、DEC VT4xx / 5xx docoを参照してください。
  • DECの世界では、SDとSUはバッファスクロールではなくウィンドウ変換です。 VT525にはマルチウィンドウ機能があり、これらの制御シーケンスはメインバッファの周りにウィンドウを移動します。
  • 一部の過酷な8ビット以外のクリーンターミナルエミュレータは、U + 0084とU + 008DをINDとRIとして正しく認識できず、7ビットエイリアスを強制的に使用します。

おすすめ記事