.TH DIALOG 1 "2 October 1998" .\" jpman %Id: dialog.1,v 1.3 1997/07/27 11:54:02 horikawa Stab % .SH 名称 dialog \- シェルスクリプトからダイアログボックスを表示する .SH 書式 .B dialog --clear .br .BI "dialog --create-rc " file .br .B dialog [ .BI "\-\-title " title ] [ .B \-\-clear ] [ .BI "\-\-hline " line ] [ .BI "\-\-hfile " file ] .B box-options .SH 解説 .B dialog はシェルスクリプトから、 質問形式、メッセージ表示形式など、 いろいろな種類のダイアログボックスを表示するプログラムです。 現在サポートされているダイアログボックスは 以下のとおりです。 .LP .BR yes/no " ボックス、" " menu" " ボックス、" " input" " ボックス、" .BR message " ボックス、" " text" " ボックス、" " info" " ボックス、" .BR checklist " ボックス、" " program" " ボックス、" .BR ftree " および " tree " ボックスです。" .SH オプション .TP .B \-\-clear 終了時に画面をクリアします。 .TP .BI \-\-create-rc " file" .B dialog はランタイムコンフィギュレーションをサポートしています。 .I file にサンプルの設定ファイルを書き出します。 .TP .BI \-\-title " title" ダイアログボックスの最上行に表示する文字列 .I title を指定します。 .TP .BI \-\-hline " line" ダイアログボックスの最下行に表示する文字列 .I line を指定します。 .TP .BI \-\-hfile " file" ? キーか F1 キーをタイプしたときに 表示する .I file を指定します。 .TP .B ボックスオプション .TP .BI \-\-yesno " text height width" 縦 .I height 横 .I width のサイズの .BR yes/no ダイアログボックスを表示します。 .I text で指定された文字列はダイアログボックスの内部に 表示されます。 この文字列が長すぎて、1行で表示できない場合は、 自動的に複数行に分割されます。 .I text が文字列 .I "\en" もしくは改行文字 .I `\en\' を含んでいる場合、その場所で 改行します。 このダイアログボックスは ユーザに yes あるいは no という返答を求める 際に役に立ちます。 ダイアログボックスは .B Yes と .B No のボタンを持っており、 .IR TAB キーで選択することができます。 .TP .BI \-\-msgbox " text height width" .B message ボックスは .B yes/no ボックスと似ていますが、 .B message ボックスの場合、 .B OK ボタンしか表示されません。 このダイアログボックスを使って、メッセージを表示 することができます。 ユーザはこのメッセージを読んだ後、 .I ENTER キーを押して、 .B dialog を終了し、シェルスクリプトの実行を続けることになります。 .TP .BI \-\-infobox " text height width" .B info ボックスは基本的に .B message ボックスと同じですが、メッセージを表示すると すぐに終了します。 .B dialog の終了時に画面はクリアされません。 メッセージはシェルが後で画面をクリアするまで残ります。 これは終了までに時間のかかる処理を行うことを、 ユーザに知らせるときに便利です。 .TP .BI \-\-inputbox " text height width" .B input ボックスはユーザに文字列を入力させる ときに役に立ちます。入力時に .I バックスペース キーを 押すことで、タイプミスを訂正することができます。 入力文字列がダイアログボックスより長くなった 場合は、入力フィールドがスクロールします。 終了時には入力された文字列を .IR stderr に出力します。 .TP .BI \-\-textbox " file height width" .B text ボックスは、テキストファイルの内容をダイアログボックスの中に 表示するためのものです。これは簡単なテキストファイルビュアーの ようなものです。 表示中は、 .IR UP/DOWN "、" PGUP/PGDN "、" HOME/END キーを使ってファイル中を移動できます。 1 行がダイアログボックスより長い場合は、 .I LEFT/RIGHT で左右にスクロールできます。 より便利に使うために、 前方検索、後方検索の機能も実装されています。 .IP "\fB\-\-menu \fItext height width menu-height \fR[ \fItag item \fR] \fI..." .B menu ボックスは、その名のとおりダイアログボックスにリストを表示して ユーザに選ばせるものです。 各メニューは .I tag と .I item で構成されます。 .I tag は他の項目と区別するためのものです。 .I item はその項目が表す内容を短く記述したものです。 ユーザは .I UP/DOWN キー、または .I tag の先頭文字、 .I 1-9 を押すことで項目を選べます。 .I menu-height は一度に表示できるメニューの数を設定します。 .I menu-height より多くの項目がある場合、メニューがスクロールします。 .B dialog を終了するとき、 選択されたメニューの .I tag が .I stderr に出力されます。 .TP .BI \-\-prgbox " command height width" .B program ボックスは .B command の出力をダイアログボックスに表示します。 .IP "\fB\-\-checklist \fItext height width list-height \fR[ \fItag item status \fR] \fI..." .B checklist ボックスは、 メニューから項目を選ぶという点で .B menu ボックスと似ていまが、 項目のなかから 1 つを選ぶのではなく、 ユーザが各項目をオン・オフに設定することができます。 各項目のオン・オフの初期設定は .I status で設定できます。 終了時には、 ステータスがオンになっている項目の .I tag が .I stderr に出力されます。 .IP "\fB\-\-ftree \fIfile FS text height width menu-height" .B ftree ボックスは、 ファイル .I file に記述されたデータをもとにツリーを表示するダイアログボックスです。 ファイル内のデータは、find(1) の出力形式のように見えます。 find の出力の場合、フィールドセパレータ .I FS は .IR \'/\' になります。 .I height および .I width が正の値の場合、 .B ftree ボックス全体の絶対的な大きさを設定します。 .I height および .I width が負の値の場合、 .B ftree ボックスの大きさは、自動的に選択されます。 .I menu-height は、 .B ftree ボックス内部のツリーサブウィンドウの高さを設定しますので、 指定する必要があります。 .I text は、 .B ftree ボックス内部のツリーサブウィンドウ上部に表示され、 行を分割するために改行文字 .I '\en\' を含めることが可能です。 .IR UP/DOWN " または " \'+\'/\'-\' "、" PG_UP/PG_DOWN " または " \'b\'/SPACE .RI "、そして" HOME/END " または " \'g\'/\'G\' を押すことにより、ツリー内部を移動することが可能です。 リーフの選択は、 .IR TAB " または " LEFT/RIGHT で .B OK ボタンに移動してから .I ENTER を押します。 選択したリーフ (より正確には、ツリーのルートからリーフまでの完全なパス) が .I stderr に表示されます。 .B Cancel の後に .I ENTER を押すと、 .I stderr には何も表示されません。 .I file には find(1) 形式の出力を含めることが可能ですが、 find(1) を .I -d オプション付きで起動した出力のような形式も使用可能です。 ツリーのリーフへの中間のパスは、無くてもかまいません。 そのようなデータは、ファイルからの読み込み時に修正されます。 .IP "\fB\-\-tree \fIFS text height width menu-height \fR[ \fIitem \fR] \fI..." .B tree ボックスは、 .B ftree に似ていますが、例外があります。 第 1 に、データはファイルから入力されるのではなく、コマンドラインから .I item item ... の形式で読み込まれます。 第 2 に、データの修正はいかなる場合にも行われません。 よって、find(1) を .I -d オプション付きで起動した形式のデータは不正に見えます。 .SH ランタイムコンフィギュレーション .TP 4 1. 以下のように、サンプルの設定ファイルを作成します。 .LP .in +1i "dialog --create-rc " .TP 4 2. .B dialog は以下のように読み込む設定ファイル決定します。 .RS .TP 4 a) 環境変数 .B DIALOGRC が設定されている場合、その値は設定ファイル名として扱われます。 .TP 4 b) (a) で指定されたファイルが存在しなかった場合、 .I $HOME/.dialogrc が設定ファイルとして扱われます。 .TP 4 c) (b) のファイルが存在しなかった場合、 デフォルトの設定で起動します。 .RE .TP 4 3. サンプルの設定ファイルを編集して、 2 を参考に .B dialog が見付けることができる場所にコピーします。 .SH 環境変数 .TP 15 .B DIALOGRC 独自に設定をする場合は、設定ファイル名を指定します。 .SH 関連ファイル .TP 20 .I $HOME/.dialogrc デフォルトの設定ファイル .SH 診断 .BR dialog が .BR Yes か .BR OK を押されて終了した場合は 0 を、 .BR No か .BR Cancel を押されて終了した場合は 1 を返します。 また、 .B dialog の内部でエラーが起こるか、 .B dialog を .I ESC キーを押して終了させた場合、-1 を返します。 .SH 関連項目 dialog(3) .SH バグ .I タブ キャラクタを含むテキストファイルを .B text ボックス で表示すると、うまく表示されません。 テキストファイルの中の .I タブ キャラクタは 事前にスペースに変換しておかなくてはなりません。 .sp 1 画面の書き換えには時間がかかります。 .sp 1 .B ftree および .B tree のボックスでは、ツリーを左右に動かすことができません。 よって、多階層のデータの場合、見えなくなる階層が生じます。 80 文字の標準的な画面では、17 個の階層を見せることができます。 より深い階層は見えません。 それでも、ツリー内の移動と、リーフの選択は動作します。 .SH 作者 Savio Lam (lam836@cs.cuhk.hk) .sp 1 Anatoly A. Orehovsky (tolik@mpeks.tomsk.su) が更新しました (ftree と tree ボックス)。