現在041までの001,002,003,004 ...などの番号が付けられた一連のスクリプトを実行するスクリプトがありますが、将来的にはさらに多くなります-これらのスクリプト自体は、カーソルコントロールを使用してプログレスバーやその他のステータス情報を印刷し、それぞれtput cols
とtput lines
からの端末の幅と高さ。
サブスクリプトを書き直さずに、下部のone行をoverall外部スクリプトのステータス情報用に予約したいと思います。行と列に対するtputの応答を設定する方法があるかどうか興味がありました。
Tmuxがそれを達成するので、方法がなければなりません。環境変数があるかもしれないと思っていましたが、envの実行時にtmuxが行う唯一の変更は、$ TERMをscreenに設定することです。
どんな助けでも大歓迎です
以下では、行数と列のtputリターンをカスタマイズできます
export LINES=1000
export COLUMNS=1000
ソースを読むことは決定的ですが、気弱な人にとっては、マニュアルが行く場所です。コマンドラインオプションがない場合、ターミナルデータベースと環境変数を組み合わせることで、スクリプトに必要なものがすべて提供されます。
tput
マニュアルページには環境変数については触れられていません。curs_terminfo(3x)
ページのtputs
を指しています。Enlightenmentを検索するには、 ncurses のマニュアルページを試してみてください。
LINES
とCOLUMNS
がリストされています。LINES
では、COLUMNS
を表示するように指示されています。COLUMNS
詳細情報を提供します:画面の幅を文字で指定します。ウィンドウ環境で実行されているアプリケーションは、通常、実行されているウィンドウの幅を取得できます。
COLUMNS
値も端末の画面サイズも使用できない場合、ncursesは、terminfoデータベースで指定されているサイズを使用します(つまり、 、cols
機能)。
さて、この質問では、マニュアルページがより直接的で、tput
は出力にtputs
を使用し、初期化にもsetupterm
を使用すると言っていれば良かったでしょう。時折(この情報が変更ログですぐに利用できる場合)、マニュアルに明示されていないことに誰も気付かないことがあります。たとえば、このアイテムは 2002 :
_ + modify setupterm() to ensure that it initializes the baudrate, for
applications such as tput (report by Frank Henigman).
_
スレッドに戻る:
curs_terminfo(3x)
のセクションはsetupterm
について説明しています。use_env
_ が呼び出されていない通常の場合、setupterm
は、LINES
変数とCOLUMNS
変数がターミナルデータベースをオーバーライドできるようにします。値。use_env
_ マニュアルページは、値がオペレーティングシステムから取得される可能性があることをコメントするだけでなく、それを繰り返しています。繰り返しになりますが、変更ログには、tput
がこれを実行する(オペレーティングシステムから値を取得する)と記載されています。たとえば、これは 2007 からです。
_+ restore a call to obtain screen-size in _nc_setupterm(), which
is used in tput and other non-screen applications via setupterm()
(Debian #433357, reported by Florent Bayle, Christian Ohm,
cf: 20070310).
_
要約すると、既存のドキュメントはncursesの動作に関するほとんどすべての質問に対する回答を提供しますが、ある程度読む必要があります。