スポンサーリンク

DIALOG

名称
書式
解説
オプション
ランタイムコンフィギュレーション
環境変数
関連ファイル
診断
関連項目
バグ
作者

名称

dialog − シェルスクリプトからダイアログボックスを表示する

書式

dialog --clear
dialog --create-rc
file
dialog
[ −−title title ] [ −−clear ] [ −−hline line ] [ −−hfile file ] box-options

解説

dialog はシェルスクリプトから、質問形式、メッセージ表示形式など、いろい ろ な種類のダイアログボックスを表示するプログラムです。現在サポートされ ているダイアログボックスは以下のとおりです。

yes/no ボックス、 menu ボックス、 input ボックス、 message ボッ ク ス、 text ボックス、 info ボックス、 checklist ボックス、 program ボックス、 ftree および tree ボックスです。

オプション

−−clear

終了時に画面をクリアします。

−−create-rc file

dialog はランタイムコンフィギュレーションをサポートしています。 file にサンプルの設定ファイルを書き出します。

−−title title

ダイアログボックスの最上行に表示する文字列 title を指定します。

−−hline line

ダイアログボックスの最下行に表示する文字列 line を指定します。

−−hfile file

? キーか F1 キーをタイプしたときに表示する file を指定します。

ボックスオプション

−−yesno text height width

heightwidth のサイズの yes/no ダイアログボックスを表示し ま す。 text で指定された文字列はダイアログボックスの内部に表示 されます。この文字列が長すぎて、1行で表示できない場合は、自動的 に 複 数 行に分割されます。 text が文字列 "\n" もしくは改行文字 ‘\n´ を含んでいる場合、その場所で改行します。このダイアログボッ クスはユーザに yes あるいは no という返答を求める際に役に立ちま す。ダイアログボックスは YesNo のボタンを持ってお り、 TAB キーで選択することができます。

−−msgbox text height width

message ボックスは yes/no ボックスと似ていますが、 message ボッ クスの場合、 OK ボタンしか表示されません。このダイアログボッ ク ス を 使っ て、メッセージを表示することができます。ユーザはこの メッセージを読んだ後、 ENTER キーを押して、 dialog を終 了 し、 シェルスクリプトの実行を続けることになります。

−−infobox text height width

info ボックスは基本的に message ボックスと同じですが、メッセー ジを表示するとすぐに終了します。 dialog の終了時に画面はクリ ア さ れません。メッセージはシェルが後で画面をクリアするまで残りま す。これは終了までに時間のかかる処理を行うことを、ユーザに知 ら せるときに便利です。

−−inputbox text height width

input ボックスはユーザに文字列を入力させるときに役に立ちます。 入力時に バックスペースキーを押すことで、タイプミスを訂正するこ と ができます。入力文字列がダイアログボックスより長くなった場合 は、入力フィールドがスクロールします。終了時には入力された文 字 列を stderr に出力します。

−−textbox file height width

text ボックスは、テキストファイルの内容をダイアログボックスの中 に表示するためのものです。これは簡単なテキストファイルビュ アー の ようなものです。表示中は、 UP/DOWNPGUP/PGDNHOME/END キー を使ってファイル中を移動できます。 1 行がダイアログボックスより 長 い場合は、 LEFT/RIGHT で左右にスクロールできます。より便利に 使うために、前方検索、後方検索の機能も実装されています。

−−menu text height width menu-height [ tag item ] ...

menu ボックスは、その名のとおりダイアログボックスにリストを表示 してユーザに選ばせるものです。各メニューは tagitem で構成さ れます。 tag は他の項目と区別するためのものです。 item はその項 目が表す内容を短く記述したものです。ユーザは UP/DOWN キー、また は tag の先頭文字、 1-9 を押 す こ と で 項 目 を 選 べ ま す。 menu-height は 一 度 に 表 示できるメニューの数を設定します。 menu-height より多くの項目がある場合、メニューがスクロールし ま す。 dialog を終了するとき、選択されたメニューの tagstderr に出力されます。

−−prgbox command height width

program ボックスは command の出力をダイアログボックスに表示しま す。

−−checklist text height width list-height [ tag item status ] ...

checklist ボッ ク スは、メニューから項目を選ぶという点で menu ボックスと似ていまが、項目のなかから 1 つを選ぶのではなく、ユー ザ が各項目をオン・オフに設定することができます。各項目のオン・ オフの初期設定は status で設定できます。終了時には、ステータ ス がオンになっている項目の tagstderr に出力されます。

−−ftree file FS text height width menu-height

ftree ボッ クスは、ファイル file に記述されたデータをもとにツ リーを表示するダイアログボックスです。 ファ イ ル 内 の デー タ は、find(1) の 出力形式のように見えます。 find の出力の場合、 フィールドセパレータ FS´/´ になります。 height および width が 正 の値の場合、 ftree ボックス全体の絶対的な大きさを設定しま す。 height および width が負の値の場合、 ftree ボックスの大 き さ は、自動的に選択されます。 menu-height は、 ftree ボックス内 部のツリーサブウィンドウの高さを設定しますので、指定する必要 が あります。 text は、 ftree ボックス内部のツリーサブウィンドウ上 部に表示され、行を分割するために改行文字 ’\n´ を含めることが 可 能です。 UP/DOWN または ´+´/´-´PG_UP/PG_DOWN または ´b´/SPACE 、そしてHOME/END または ´g´/´G´ を押すことにより、ツリー内部 を 移 動することが可能です。リーフの選択は、 TAB または LEFT/RIGHTOK ボタンに移動してから ENTER を押します。選択したリーフ (よ り正確には、ツリーのルートからリーフまでの完全なパス) が stderr に表示されます。 Cancel の後に ENTER を押すと、 stderr には何も 表示されません。 file には find(1) 形式の出力を含めることが可能 ですが、 find(1)-d オプション付きで起動した出力のような形式 も 使用可能です。ツリーのリーフへの中間のパスは、無くてもかまい ません。そのようなデータは、ファイルからの読み込み時に修正さ れ ます。

−−tree FS text height width menu-height [ item ] ...

tree ボッ クスは、 ftree に似ていますが、例外があります。第 1 に、データはファイルから入力されるのではなく、コマンドライン か ら item item ... の形式で読み込まれます。第 2 に、データの修正 はいかなる場合にも行われません。よって、find(1)-d オプ ショ ン付きで起動した形式のデータは不正に見えます。

ランタイムコンフィギュレーション

1.

以下のように、サンプルの設定ファイルを作成します。

"dialog --create-rc <file>"

2.

dialog は以下のように読み込む設定ファイル決定します。

a)

環境変数 DIALOGRC が設定されている場合、その値は設定ファイ ル名として扱われます。

b)

(a) で指定された ファ イ ル が 存 在 し な かっ た 場 合、 $HOME/.dialogrc が設定ファイルとして扱われます。

c)

(b) のファイルが存在しなかった場合、デフォルトの設定で起動 します。

3.

サンプルの設定ファイルを編集して、 2 を参考に dialog が見付 け

ることができる場所にコピーします。

環境変数

DIALOGRC

独自に設定をする場合は、設定ファイル名を指定 します。

関連ファイル

$HOME/.dialogrc

デフォルトの設定ファイル

診断

dialogYesOK を押されて終了した場合は 0 を、 NoCancel を押さ れ て 終了した場合は 1 を返します。また、 dialog の内部でエラーが起こる か、 dialogESC キーを押して終了させた場合、-1 を返します。

関連項目

dialog(3)

バグ

タブキャラクタを含むテキストファイルを text ボックスで表示すると、う ま く表示されません。テキストファイルの中の タブキャラクタは事前にスペース に変換しておかなくてはなりません。

画面の書き換えには時間がかかります。

ftree および tree のボックスでは、ツリーを左右に動かすことがで き ま せ ん。 よって、多階層のデータの場合、見えなくなる階層が生じます。 80 文字 の標準的な画面では、17 個の階層を見せることができます。より深い階層は見 えません。それでも、ツリー内の移動と、リーフの選択は動作します。

作者

Savio Lam (lam836@cs.cuhk.hk)

Anatoly A. Orehovsky (tolik@mpeks.tomsk.su) が更新しました (ftree と tree ボックス)。

スポンサーリンク