マニュアルページセク ション 1: ユーザーコマンド

印刷ビューの終了

更新: 2014 年 7 月
 
 

tput(1)

名前

tput - 端末の初期化または terminfo データべースの照会

形式

tput [-T type] capname [parm]...
tput -S <<

説明

tput は、 terminfo データべースを使って、 端末に依存した機能やシェルに渡される情報 (sh(1) を参照) の値を決定するか、 端末をクリア、初期化、またはリセットするか、 または要求された端末タイプの長い名前 (正式な名前) を返します。capname 引数で指定された機能属性が文字列型であれば、 tput は文字列を出力します。同様に、属性が整数型であれば整数を出力します。属性がブール型であれば、tput は単に終了ステータスを設定するだけで何も出力しません。この場合の終了ステータスの値は、端末がその機能を持っていれば真を示す 0 であり、持っていなければ偽を示す 1 となります。標準出力に返された値を使用する前に、 必ず終了ステータス ($?sh(1) を参照) の値が 0 であることを確認してください。詳細については後述の「終了ステータス」 の項を参照してください。

オプション

サポートしているオプションは、次のとおりです。

–Ttype

端末の種類を type 引数で指定します。通常は、デフォルトの種類が TERM 環境変数から得られるので、このオプションは必要ありません。–T オプションを指定すると、シェル変数の LINES と COLUMNS、およびレイヤーサイズは参照されません。

–S

1 回の tput の呼び出しで複数の機能指定を可能にするオプションです。この場合、対象となる機能はコマンド行からではなく 標準入力から tput に渡すことになります。 「使用例」の項にある例を参照してください。1 行には 1 つの capname しか指定できません。なお、 –S オプションを指定した場合、 ブール型および文字列型の終了ステータス 01 の意味が変わります。 詳しくは「終了ステータス」の項を参照してください。

オペランド

次のオペランドがサポートされています。

capname

terminfo データベースから得られる、機能属性を表します。機能とそれに対応する capname の一覧については、terminfo(4) を参照してください。

C ロケールを使ったシステムでは、以下の文字列が オペランドとしてサポートされています。

clear

クリアスクリーンのシーケンスを表示します。

init

terminfo データべースが存在し、 ユーザーの端末用のエントリが存在していれば (前述の –Ttype の説明を参照)、以下のすべての処理が実行されます。

  1. 端末の初期化文字列が存在すれば、それが出力される(is1is2is3ifiprog)

  2. エントリ中の遅延指定 (たとえば復帰改行) が、 tty ドライバに設定される

  3. エントリ中の指定に従い、 タブの展開指定を有効または無効にする

  4. タブを展開しない場合、 標準タブ (8 文字ごと) が設定される。これら 4 つの処理を行うための情報がエントリ中に存在しなければ、 その該当処理はスキップされますが、 それを表すメッセージは出力されません。

reset

初期化文字列を出力する代わりに、 端末のリセット文字列が存在すればそれを出力します (rs1rs2rs3rf)。リセット文字列が存在せず、初期化文字列が存在している場合には、 その初期化文字列が出力されます。それ以外の場合には、 reset の動作は init と同一です。

longname

terminfo データべースが存在し、ユーザーの端末用のエントリが存在していれば (前述の –Ttype の説明を参照)、端末の長い名前が出力されます。ここでいう長い名前とは、terminfo データべース中の当該端末の記述における、先頭行の最後に書かれている名前です (term(5) を参照)。

parm

前述の capname で指定した属性がパラメータを伴う文字列の場合、この parm で指定する値が文字列に代入されます。数字で表された引数は、すべて数値として属性に渡されます。

使用例 1 TERM に従った端末の初期化

最初の例は、環境変数 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

次の例は、カーソルを 234 列に移動させるシーケンスを送信するコマンドです。

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 コマンドです。この例では、画面をクリアーし、カーソルを 1010 列の位置に移動させ、ボールド (超高輝度) モードをオンに設定するという一連の処理を実行しています。処理の記述の終わりは、感嘆符 (!) だけの行で表します。

example% tput -S <<! 
> clear 
> cup 10 10
> bold 
> !

環境変数

tput の実行に影響を与える次の環境変数についての詳細は、environ(5) を参照してください。LANG、LC_ALL、LC_CTYPE、LC_MESSAGES、および NLSPATH。

TERM

端末のタイプを決定します。この変数が設定されていないかあるいは NULL に設定されていて、 –T オプションが省略された場合、デフォルトの端末タイプ (予測できない) が用いられます。

終了ステータス

次の終了ステータスが返されます。

0
  • capname がブール型で –S オプションが省略された場合、真を表す。

  • capname が文字列型で –S オプションが省略された場合、capname がこの端末タイプに対して定義されていることを表す。

  • capname がブール型または文字列型で –S が指定された場合、すべての行が正常に処理されたことを表す。

  • capname が整数型であることを表す。

  • 要求された文字列が正しく書き込まれたことを表す。

1
  • capname がブール型で –S オプションが省略された場合、偽を表す。

  • capname が文字列型で –S が省略された場合、capname がこの端末タイプに対して定義されていないことを表す。

2

使用方法のエラー。

3

指定された端末タイプに関して、情報が何も存在しません。

4

不正なオペランドが指定されました。

>4

エラーが発生した。

–1

capnameterminfo データベースに指定された数値ではなかった。たとえば tput –T450 lines や tput –T2621 xmc などが指定されました。

ファイル

/usr/include/curses.h

curses(3CURSES) ヘッダー

/usr/include/term.h

terminfo ヘッダー

/usr/lib/tabset/*

ある端末用のタブ設定を、 その端末に出力する上で適切な形式 (マージンとタブを設定するエスケープシーケンス) で指定。詳細については terminfo(4) の説明中の「タブと初期化」の項を参照

/usr/share/lib/terminfo/?/*

コンパイルされた端末記述データべース

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
確実
標準
standards(5) を参照してください。

関連項目

clear(1), sh(1), stty(1), tabs(1), curses(3CURSES), profile(4), terminfo(4), attributes(5), environ(5), standards(5), term(5)