tput - 端末の初期化または terminfo データべースの照会
tput [-T type] capname [parm]...
tput -S <<
tput は、 terminfo データべースを使って、 端末に依存した機能やシェルに渡される情報 (sh(1) を参照) の値を決定するか、 端末をクリア、初期化、またはリセットするか、 または要求された端末タイプの長い名前 (正式な名前) を返します。capname 引数で指定された機能属性が文字列型であれば、 tput は文字列を出力します。同様に、属性が整数型であれば整数を出力します。属性がブール型であれば、tput は単に終了ステータスを設定するだけで何も出力しません。この場合の終了ステータスの値は、端末がその機能を持っていれば真を示す 0 であり、持っていなければ偽を示す 1 となります。標準出力に返された値を使用する前に、 必ず終了ステータス ($?、sh(1) を参照) の値が 0 であることを確認してください。詳細については後述の「終了ステータス」 の項を参照してください。
サポートしているオプションは、次のとおりです。
端末の種類を type 引数で指定します。通常は、デフォルトの種類が TERM 環境変数から得られるので、このオプションは必要ありません。–T オプションを指定すると、シェル変数の LINES と COLUMNS、およびレイヤーサイズは参照されません。
1 回の tput の呼び出しで複数の機能指定を可能にするオプションです。この場合、対象となる機能はコマンド行からではなく 標準入力から tput に渡すことになります。 「使用例」の項にある例を参照してください。1 行には 1 つの capname しか指定できません。なお、 –S オプションを指定した場合、 ブール型および文字列型の終了ステータス 0 と 1 の意味が変わります。 詳しくは「終了ステータス」の項を参照してください。
次のオペランドがサポートされています。
terminfo データベースから得られる、機能属性を表します。機能とそれに対応する capname の一覧については、terminfo(4) を参照してください。
C ロケールを使ったシステムでは、以下の文字列が オペランドとしてサポートされています。
クリアスクリーンのシーケンスを表示します。
terminfo データべースが存在し、 ユーザーの端末用のエントリが存在していれば (前述の –Ttype の説明を参照)、以下のすべての処理が実行されます。
端末の初期化文字列が存在すれば、それが出力される(is1、is2、is3、if、iprog)
エントリ中の遅延指定 (たとえば復帰改行) が、 tty ドライバに設定される
エントリ中の指定に従い、 タブの展開指定を有効または無効にする
タブを展開しない場合、 標準タブ (8 文字ごと) が設定される。これら 4 つの処理を行うための情報がエントリ中に存在しなければ、 その該当処理はスキップされますが、 それを表すメッセージは出力されません。
初期化文字列を出力する代わりに、 端末のリセット文字列が存在すればそれを出力します (rs1、rs2、rs3、rf)。リセット文字列が存在せず、初期化文字列が存在している場合には、 その初期化文字列が出力されます。それ以外の場合には、 reset の動作は init と同一です。
terminfo データべースが存在し、ユーザーの端末用のエントリが存在していれば (前述の –Ttype の説明を参照)、端末の長い名前が出力されます。ここでいう長い名前とは、terminfo データべース中の当該端末の記述における、先頭行の最後に書かれている名前です (term(5) を参照)。
前述の capname で指定した属性がパラメータを伴う文字列の場合、この parm で指定する値が文字列に代入されます。数字で表された引数は、すべて数値として属性に渡されます。
最初の例は、環境変数 TERM が示す端末タイプに従って端末を初期化する処理です。なお、profile(4) マニュアルページで説明されているように、このコマンドは (環境変数 TERM をエクスポートしたあと) どのユーザーの .profile にも入れておくべきコマンドです。
example% tput init使用例 2 端末の初期化
次の例は、 AT&T 5620 端末を初期化して、 環境変数 TERM が示す端末タイプを置き換えるコマンドです。
example% tput -T5620 reset使用例 3 カーソルの移動
次の例は、画面上の行番号 0 列番号 0、つまり左上角 (通常ホームポジションと呼ばれている位置) にカーソルを移動するためのシーケンスを送るコマンドです。
example% tput cup 0 0
次の例は、カーソルを 23 行 4 列に移動させるシーケンスを送信するコマンドです。
example% tput cup 23 4使用例 4 画面をクリアするシーケンスのエコー
次の例は、使用している端末の画面をクリアするシーケンスをエコーさせるコマンドです。
example% tput clear使用例 5 列の数の表示
次の例は、使用している端末の列の数を表示するコマンドです。
example% tput cols
次の例は、 450 型端末の列の数を表示するコマンドです。
example% tput -T450 cols使用例 6 シェル変数の設定
次の例は、使用している端末を、シェル変数 bold を強調モード・シーケンスを開始する値に設定し、 offbold を強調モード・シーケンスを 終了する値に設定するコマンドです。このコマンドを実行すると、 以下のプロンプトが出力されることがあります。
echo "${bold}Please type in your name: ${offbold}\c" example% bold='tput smso' example% offbold='tput rmso'使用例 7 終了ステータスの設定
次の例は、使用している端末がハードコピー端末であるかどうかを 示す終了ステータスを設定するコマンドです。
example% tput hc使用例 8 terminfo からの長い名前の表示
次の例は、環境変数 TERM が示す端末タイプに対応した長い名前を terminfo データべースから検索して表示するコマンドです。
example% tput longname使用例 9 1 回の呼び出しでの複数機能の処理
最後の例は、 1 回の呼び出しで複数の機能を処理する tput コマンドです。この例では、画面をクリアーし、カーソルを 10 行 10 列の位置に移動させ、ボールド (超高輝度) モードをオンに設定するという一連の処理を実行しています。処理の記述の終わりは、感嘆符 (!) だけの行で表します。
example% tput -S <<! > clear > cup 10 10 > bold > !
tput の実行に影響を与える次の環境変数についての詳細は、environ(5) を参照してください。LANG、LC_ALL、LC_CTYPE、LC_MESSAGES、および NLSPATH。
端末のタイプを決定します。この変数が設定されていないかあるいは NULL に設定されていて、 –T オプションが省略された場合、デフォルトの端末タイプ (予測できない) が用いられます。
次の終了ステータスが返されます。
capname がブール型で –S オプションが省略された場合、真を表す。
capname が文字列型で –S オプションが省略された場合、capname がこの端末タイプに対して定義されていることを表す。
capname がブール型または文字列型で –S が指定された場合、すべての行が正常に処理されたことを表す。
capname が整数型であることを表す。
要求された文字列が正しく書き込まれたことを表す。
capname がブール型で –S オプションが省略された場合、偽を表す。
capname が文字列型で –S が省略された場合、capname がこの端末タイプに対して定義されていないことを表す。
使用方法のエラー。
指定された端末タイプに関して、情報が何も存在しません。
不正なオペランドが指定されました。
エラーが発生した。
capname は terminfo データベースに指定された数値ではなかった。たとえば tput –T450 lines や tput –T2621 xmc などが指定されました。
curses(3CURSES) ヘッダー
terminfo ヘッダー
ある端末用のタブ設定を、 その端末に出力する上で適切な形式 (マージンとタブを設定するエスケープシーケンス) で指定。詳細については terminfo(4) の説明中の「タブと初期化」の項を参照
コンパイルされた端末記述データべース
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
|
clear(1), sh(1), stty(1), tabs(1), curses(3CURSES), profile(4), terminfo(4), attributes(5), environ(5), standards(5), term(5)