DIALOG(1) | FreeBSD General Commands Manual | DIALOG(1) |
名称
dialog -シェルスクリプトから dialog ボックスを表示する書式
dialog --clear解説
dialog は、シェルスクリプトから dialog ボックスを使用してさまざまな質問または表示メッセージを表示するためのプログラムです。これらの dialog ボックスのタイプは、(すべてが必ずしも dialog にコンパイルされるというわけではありませんが) 次のように実装されています:buildlist, calendar, checklist, dselect, editbox, form, fselect, gauge, infobox, inputbox, inputmenu, menu, mixedform, mixedgauge, msgbox (メッセージ), passwordbox, passwordform, pause, prgbox, programbox, progressbox, radiolist, rangebox, tailbox, tailboxbg, textbox, timebox, treeview と yesno (yes/no)。
1 つ以上の dialog ボックスをスクリプトに入れることができます:
- •
- キャンセルのために ESC を押していないなら、強制的に dialog が次の dialog を進行するために " --and-widget"トークンを使用します。
- •
- チェーンを作る、次の dialog ボックスのために単にトークンを追加します。 dialog は、dialog からのリターンコードが 0 でないとき、例えば、Cancel または No (診断を参照)、チェイニング (chaining) を停止します。
いくつかの widget (例えば、checklist) は、 dialog の出力にテキストを書き込みます。通常、それは、標準エラーですが、これを変更するためのオプションがあります: " --output-fd", " --stderr"と " --stdout"。 Cancel ボタン (または、ESC) が押されるなら、テキストは、書き込まれません。その場合、 dialog は、直ちに終了します。
オプション
すべてのオプションは、" --" (2 つの ASCII のハイフン、混乱したロケールのサポートでシステムを使用するものの利益のために) で始まります。" --"それ自体は、エスケープとして使用されます、すなわち、コマンドラインの次のトークンは、オプションとして扱われません。
" --args"オプションは、コマンドラインのパラメータを標準エラーにリストすることを dialog に伝えます。これらが展開されるように、コマンドラインが書き直されるかもしれないので、 " --" and " --file"を使用して複雑なスクリプトをデバッグするとき、これは、役に立ちます。
" --file"オプションは、値として指定されたファイルからパラメータを読み込むように dialog に伝えます。
ダブルクォート (二重引用符) 内の空白は、捨てられます (単一文字をクォートするためにはバックスラッシュを使用します)。 "--file"とそのオプション値を置き換えて、 結果は、コマンドラインに挿入されます。 コマンド行の解釈は、その時点から再開します。 parameterfile が "&"で始まるなら、dialog は、 ファイル名ではなくファイル記述子の番号として次のテキストを解釈します。
共通のオプション
- --ascii-lines
- ボックスの周りにグラフィックスの線を描くのではなく、同じ場所に ASCII "+" and "-"を描きます。 " --no-lines"も参照してください。
- --aspect ratio
- (高さと幅に 0 を指定して) 自動サイズ処理を使用するとき、これは、ボックスの次元の何らかの制御を利用者に与えます。それは、幅 / 高さを表します。デフォルトは、すべての 1 行の高さが 9 文字の幅を意味する、9 です。
- --backtitle backtitle
- 画面の上部に背景に表示するための backtitle 文字列を指定します。
- --begin y x
- 画面の dialog ボックスの左上隅の位置を指定します。
- --cancel-label string
- "Cancel"ボタンに使用されるラベルを上書きします。
- --clear
- screen_color のバックグラウンドのみを保持して、widget 画面をクリアします。次の widget の内容の下に見られないように、画面上の前の widget の内容を消すために " --and-widget"を付けて widget を結合するとき、これを使用します。 " --keep-window"の補完として、これを理解します。効果を比較するためには、次のものを使用します:
- 目に見えるすべての 3 つの widget、階段効果、1、2、3 の順序:
dialog \
--begin 2 2 --yesno "" 0 0 \
--and-widget --begin 4 4 --yesno "" 0 0 \
--and-widget --begin 6 6 --yesno "" 0 0
- 最後の widget のみ、左に見えます:
dialog \
--clear --begin 2 2 --yesno "" 0 0 \
--and-widget --clear --begin 4 4 --yesno "" 0 0 \
--and-widget --begin 6 6 --yesno "" 0 0
- 目に見えるすべての 3 つの widget、階段効果、3、2、1 の順序:
dialog \
--keep-window --begin 2 2 --yesno "" 0 0 \
--and-widget --keep-window --begin 4 4 --yesno "" 0 0 \
--and-widget --begin 6 6 --yesno "" 0 0
- 目に見える 1 番目と 3 番目の widget、階段効果、3、1 の順序:
dialog \
--keep-window --begin 2 2 --yesno "" 0 0 \
--and-widget --clear --begin 4 4 --yesno "" 0 0 \
--and-widget --begin 6 6 --yesno "" 0 0
- 注意、dialog プログラムが終了した後に、元のコンソールの色を復旧して、カーソルをホームに送りたいなら、 clear (1) コマンドを使用します。
- --colors
- 色またはビデオ属性を設定するために dialog に伝える、次の文字によって dialog テキストに組み込まれた "\Z"シーケンスを解釈します: 0 から 7 は、curses で使用される ANSI です: それぞれ、 black (黒), red (赤), green (緑), yellow (黄色), blue (青), magenta (マゼンタ), cyan (シアン) と white (白)。ボールド (bold) は、'b' によって設定され、リセットは、'B' です。逆 (reverse) は、'r' によって設定され、リセットは、'R' です。下線 (underline) は、'u' によって設定され、リセットは、'U' です。設定は累積されます、例えば、"\Zb\Z1"は、次のテキストをボールドの (おそらく明るい) 赤にします。 "\Zn"で通常の設定を復旧します。
- --column-separator string
- 与えられた文字列が発生した場合の radio/checkboxe とメニューのためのデータを分割し、カラムに分割されたデータを割り当てることを dialog に伝えます。
- --cr-wrap
- 画面の改行として dialog テキストに埋め込まれた改行を解釈します。そうでなければ、 dialog は、テキストボックスの内側に適合する必要があるところで行をただ折り畳みます。
- 利用者は、これで行のブレークを制御することができますが、 dialog は、それでも、ボックスの幅に長過ぎる任意の行を折り畳みます。 cr-wrap なしで、利用者のテキストのレイアウトは、dialog で見る方法に影響せずに利用者のスクリプトのソースコードで見栄えがするように書式化されます。
- " --no-collapse"と " --trim"オプションも参照してください。
- --create-rc file
- dialog が、実行時設定をサポートするとき、 file によって指定されたファイルにサンプル設定ファイルをダンプするためにこれを使用することができます。
- --date-format format
- ホストが strftime を提供するなら、このオプションによって利用者は、 --calendar widget のために印刷された日付の形式を指定することができます。時刻 (時間、分、秒) は、現在のローカル時間です。
- --defaultno
- yes/no ボックスのデフォルト値を No にします。同様に、"OK"と "Cancel"を提供する widget のデフォルトボタンを Cancel にします。 " --nocancel"または " --visit-items"が与えられるなら、これを上書きするそれらのオプションは、デフォルトのボタンを常に "Yes" (内部的に "OK"と同じ) にします。
- --default-button string
- widget にデフォルト (あらかじめ選択された) ボタンを設定します。ボタンをあらかじめ選択することによって、スクリプトは、最小の相互作用で対話をとして進むために、ユーザが単に Enter を押すことを可能とします。
- オプションの値は、ボタンの名前です: ok, yes, cancel, no, help または extra。
- 通常は、各 widget の最初のボタンは、デフォルトです。表示される最初のボタンは、" --nook"と " --nocancel オプションとともに、widget によって決定されます。このオプションが与えられないなら、割り当てられたデフォルトボタンはありません。
- --default-item string
- checklist、form または menu ボックスのデフォルト項目を設定します。通常、ボックスの最初の項目がデフォルトです。
- --exit-label string
- "EXIT"ボタンに使用されるラベルを上書きします。
- --extra-button
- "OK"と "Cancel"ボタンの間の特別のボタンを表示します。
- --extra-label string
- "Extra"ボタンに使用されるラベルを上書きします。注: inputmenu widget に対して、これは、"Rename"をデフォルトとします。
- --help
- 標準出力にヘルプメッセージを印刷し、終了します。オプションが与えられないか、または認識されていないオプションが与えられても、ヘルプメッセージを印刷します。
- --help-button
- "OK"と "Cancel"ボタン (すなわち、checklist、radiolist と menu ボックスの) の後にヘルプボタンを表示します。
- 終了時に、リターン状態は、ヘルプボタンが押されたことを示します。また、 dialog は、トークン "HELP"の後に、その出力にメッセージを書き込みます:
- •
- また、" --item-help"が与えられなら、item-help テキストが書き込まれます。
- •
- そうでなければ、item のタグ (最初のフィールド) が書き込まれます。
- 利用者は、 --help-tags オプションを使用することができ、これらのメッセージと終了ステータスを修正するために、 DIALOG_ITEM_HELP 環境変数を設定します。
- --help-label string
- "Help"ボタンのために使用されるラベルを上書きします。
- --help-status
- help-button が選択されるなら、item-help "HELP"情報の後に checklist、radiolist または form 情報を書き込みます。ヘルプ要求を処理した後に checklist の状態を再構築するためにこれを使用することができます。
- --help-tags
- 単なる item のタグの、それらを常に作ることによって --help-button のために終了時に書き込まれたメッセージを修正します。これは、終了ステータスコードに影響しません。
- --hfile filename
- ユーザが F1 を押すとき、textbox を使用して与えられたファイルを表示します。
- --hline string
- widget の下側の中心に与えられた文字列を表示します。
- --ignore
- dialog が認識しないオプションを無視します。 " --icon"のようないくつかの良く知られているものは、とにかく無視されますが、これは、他の実装との互換性のためのより良い選択です。
- --input-fd fd
- 与えられたファイル記述子からキーボード入力を読み込みます。ほとんどの dialog スクリプトは、標準入力から読み込みますが、 gauge widget は、(常に標準入力である) パイプを読み込みます。いくつかの設定は、 dialog が端末を再オープンしようと試みるとき、適切に動作しません。スクリプトがそのタイプの環境で動作しなければないなら、 (ファイル記述子のしかるべき困難な状態で) このオプションを使用します。
- --insecure
- 各文字に対してアスタリスクをエコーすることによって、 password widget をよりフレンドリにしますが、安全性はすくなくなります。
- --item-help
- 現在選択された項目に対して、画面の下端行に表示される、カラムを追加する checklist, radiolist と menu ボックスのためのタグデータを解釈します。
- --keep-tite
- ncurses で構築されるとき、 dialog は、通常 xtermで実行されているか調べるためにチェックし、その場合に、それを代替の画面に切り替える、初期化文字列を抑制しよう試みます。通常と代替画面のを切り換えることは、 dialog を何度か実行するスクリプトで視覚的に乱します。このオプションを使用することによって、 dialog は、それらの初期化文字列を使用することができます。
- --keep-window
- 通常、 dialog が " --and-widget"よって接続されたいくつかの tailboxbg widget を実行するとき、上に描画することによって画面から古い widget をクリアします。描画を抑制するために、このオプションを使用します。
- 終了時に、 dialog は、たとえ、それらが tailboxbg widget でなくても、 " --keep-window"でマークされた widget のすべてに描画します。それによって、それらは、逆順で描画されます。例については、" --clear"オプションの説明を参照してください。
- --last-key
- 終了時に、ユーザが入力して最後のキーを報告します。これは、シンボルまたはリテラル文字でなく curses キーコードです。同じ動作に結び付けられる 2 つのキーを区別するためにスクリプトによって、それを使用することができます。
- --max-input size
- 入力文字列を与えられたサイズに制限します。指定されないなら、制限は、2048 です。
- --no-cancel
- --nocancel
- checklist、inputbox と menu ボックスモードの "Cancel"ボタンを抑制します。スクリプトは、それでも、ユーザが、終了してキャンセルするために ESC キーを押したかどうかテストできます。
- --no-collapse
- 通常、 dialog は、メッセージボックスなどで表示されるテキストに対してタブを空白に変換し、複数の空白を単一の空白に減少させます。その機能を無効にするために、このオプションを使用します。 dialog は、それでも、" --cr-wrap"と " --trim"オプションに従ってテキストを折り返すことに注意してください。
- --no-items
- いくつかの widget (checklist、inputmenu、radiolist、menu) は、 2 つのカラム ("タグ"と "項目"、すなわち、"記述") があるリストを表示します。このオプションは、リストの "項目"部分を省略して、より短い行を読み込むように dialog に伝えます。これは、時々役に立ちます、例えば、タグが十分な情報を提供するなら。
- また、 --no-tags を参照してください。両方のオプションが与えられるなら、これは、無視されます。
- --no-kill
- dialog の出力にプロセス ID を印刷して、バックグラウンドの tailboxbg ボックスに入れるように dialog に伝えます。 SIGHUP は、バックグラウンドプロセスに対して無効にされます。
- --no-label string
- "No"ボタンのために使用されるラベルを上書きします。
- --no-lines
- ボックスの周りの行を描画するのではなく、同じ位置に空白を描画します。また、" --ascii-lines"を参照してください。
- --no-mouse
- マウスを有効にしません。
- --no-nl-expand
- message/prompt の "\n"部分文字列をリテラルの改行に変換しません。
- --no-ok
- --nook
- checklist、inputbox と menu ボックスモードで "OK"ボタンを抑制します。スクリプトは、それでも、ユーザが、データを受け付けるために "Enter"キーを押したかどうかテストできます。
- --no-shadow
- 各 dialog ボックスの右と下部に描画される影を抑制します。
- --no-tags
- いくつかの widget (checklist、inputmenu、radiolist、menu) は、 2 つのカラム ("タグ"と "説明") あるリストを表示します。タグは、スクリプトを書くために役に立ちますが、ユーザの助けにはなりません。 --no-tags オプション (Xdialog から) は、表示からのタグのカラムを抑制するために使用されます。 --no-items オプションと異なり、これは、スクリプトから読み込まれるデータに影響しません。
- Xdialog は、類似した buildlist と treeview widget のためのタグのカラムを表示しません。 dialog は、同じことをします。
- 通常、 dialog によって、単一文字をタグの最初の文字に一致させることによって、表示されたリストのエントリに速く移動することができます。 --no-tags オプションが与えられるとき、 dialog は、記述の最初の文字に対して一致します。いずれの場合も、一致できる文字は、強調されます。
- --ok-label string
- "OK"ボタンのために使用されるラベルを上書きします。
- --output-fd fd
- 与えられたファイル記述子に出力を向けます。ほとんどの dialog は、標準エラーに書き込みますが、利用者のスクリプトにより、エラーメッセージは、そこにも書き込まれます。
- --separator string
- --output-separator string
- 改行 (--separate-output に対して) または空白でなく、 checklist から dialog の出力に出力を分離する文字列を指定します。これは、通常、改行を使用する form と editbox のような他の widget に適用されます。
- --print-maxsize
- dialog ボックスの最大サイズ (すなわち、画面サイズ) を dialog の出力に印刷します。これは、別のオプションなしで単独で使用されます。
- --print-size
- 各 dialog ボックスのサイズを dialog の出力に印刷します。
- --print-version
- dialog のバージョンを dialog の出力に印刷します。これは、別のオプションなしで単独で使用されます。それ自体で終了するための dialog を表示しません。
- --quoted
- 通常、 dialog は、項目ヘルプのテキストと同様に、チェックリストによって返された文字列をクォートします。すべての文字列の結果をクォートするために、このオプションを使用します。
- --scrollbar
- スクロール可能なデータの組を保持する widget について、ライトマージンにスクロールバーを描画します。これは、マウスに応答しません。
- --separate-output
- checklist widget について、クォートなしで結果を一度に 1 つの行で出力します。これは、別のプログラムによって解析することを容易にします。
- --separate-widget string
- 各 widget から dialog の出力に出力を分離する文字列を指定します。これは、いくつかの widget で dialog の結果を解析することを簡素化するために使用されます。このオプションが与えられないなら、デフォルトの分離文字列は、タブ文字です。
- --shadow
- 各 dialog ボックスの右と下端に影を描画します。
- --single-quoted
- 項目ヘルプテキストと同様に checklist の出力のために (不要であるなら、クォートせずに) 必要に応じて単一クォートを使用します。このオプションが設定されないなら、 dialog は、各項目の周りにダブルクォートを使用します。いずれの場合も、 dialog は、出力をシェルスクリプトで役に立つようにするためにバックスラッシュを追加します。
- --size-err
- dialog ボックスの結果のサイズが画面より大きいなら結果のサイズを印刷し、それを使用しようとする前に dialog ボックスの結果のサイズをチェックします。 (すべての新しい window 呼び出しがチェックされるので、このオプションは、時代遅れです)。
- --sleep secs
- dialog ボックスを処理した後に、与えられた秒数だけスリープ (遅延) します。
- --stderr
- 出力を標準エラーに向けます。通常、curses は、標準出力に画面のアップデートを書き込むので、これは、デフォルトです。
- --stdout
- 出力を標準出力に向けます。このオプションは、Xdialog との互換性のために提供され、しかしながら、通常、curses は、標準出力に画面のアップデートを書き込むので、移植性があるスクリプトで、それを使用することは、推薦されません。このオプションを使用するなら、 dialog は、ディスプレイに書き込むことができるように端末を再オープンすることを試みます。プラットフォームと利用者の環境によって、それは、失敗するかもしれません。
- --tab-correct
- ( textbox widget のために) 各タブ文字を 1 つ以上の空白に (そうでなければ単一の空白に) 変換します。そうでなければ、タブは、curses ライブラリの解釈に応じて、レンダリング (描画) されます。
- --tab-len n
- " --tab-correct"オプションが与えられるなら、タブ文字が占める空白の数を指定します。デフォルトは、8 です。このオプションは、 textbox widget のためだけに有効です。
- --time-format format
- ホストが strftime を提供しているなら、このオプションによって、利用者は、 --timebox widget のために印刷された時間の形式を指定することができます。この場合の日、月、年の値は、現在のローカル時間です。
- --timeout secs
- 与えられた秒数でユーザの応答がなければ、タイムアウト (エラーコードで終了) します。 0 秒のタイムアウトは、無視されます。
- このオプションは、" --pause" widget によって無視されます。また、それは、複数の並列 widget を設定するために、バックグラウンドの " --tailboxbg"オプションが使用されるなら、上書きされます。
- --title title
- dialog ボックスの上端に表示するための title 文字列を指定します。
- --trace filename
- 与えられたファイルにコマンドラインのパラメータ、キーストロークと他の情報をログ記録します。 dialog が設定ファイルを読み込むなら、それは、同様にログ記録されます。 gauge widget へのパイプ化された入力は、ログ記録されます。現在の dialog ウィンドウの絵をログ記録するためには、コントロール/T を使用します。
dialog プログラムは、いくつかのコマンドラインのパラメータを特別に扱い、それらが処理されるように、パラメータリストからそれらを取り除きます。例えば、最初のオプションが --trace であるなら、それは、 dialog がディスプレイを初期化する前に、処理され (削除されます)。
- --trim
- 先導する空白を削除し、メッセージテキストからリテラルの改行と繰り返される空白を削除します。
- また、" --cr-wrap" and " --no-collapse"オプションも参照してください。
- --version
- 標準出力に dialog のバージョンを印刷して、終了します。 " --print-version"も参照してください。
- --visit-items
- 状態の 1 つとして項目のリストを含むために、checklist、radiolist、menubox と inputmenu のタブトラバースを変更します。これは、視覚的な補助として役に立ちます、すなわち、カーソル位置がいくらかのユーザを助けます。
- このオプションが与えられるるとき、カーソルは、最初にリストに置かれます。略語 (タグの最初の文字) は、リスト項目に適用されます。ボタンの行にタブを移動するなら、略語は、ボタンに適用されます。
- --yes-label string
- "Yes"ボタンのために使用されるラベルを上書きします。
ボックスオプション
すべての dialog ボックスには、少なくとも 3 つのパラメータがあります:- text
- ボックスのの見出しまたは内容。
- height
- dialog グボックスの高さ。
- width
- dialog ボックスの幅。
他のパラメータは、ボックスのタイプに依存します。
- --buildlist text height width [ tag item status ] ...
- buildlist dialog は、並んで 2 つのリストを表示します。左側のリストは、選択されていない項目を示します。右側のリストは、選択された項目を表示します。項目は、選択されているか、または選択されていないで、それらは、リストの間を移動します。
- 選択されたウィンドウの現在の値を受け付けるためにキャリッジリターンまたは "OK"ボタンを使用し、終了します。結果は、選択されたウィンドウに表示された順序を使用して書き込まれます。
- 各エントリの最初のオン/オフ状態は、 status によって指定されます。
- dialog は、cursor がリストを直接訪れることが許されるかどうかを制御するために --visit-items を使用して、 menu のように振る舞います。
- •
- --visit-items が与えられないなら、タブ横断は、2 つの状態 (OK/Cancel) を使用します。
- •
- --visit-items が与えられるなら、タブ横断は、 4 つの状態 (Left/Right/OK/Cancel) を使用します。
- --visit--items が与えられるかどうか、デフォルトの "^" (左カラム) と "$" (右カラム) キーを使用して 2 つのリストの間の強調表示を移動させることができます。
- 終了時に、オンにされた、それらのエントリの tag 文字列のリストは、 dialog の出力に印刷 (表示) されます。
- " --separate-output"オプションが与えられないなら、文字列は、それらを分離するスクリプトを簡単にするために必要に応じて、クォート (引用) されます。デフォルトで、これは、ダブルクォート (二重引用符) を使用します。クォートの振る舞いを修正する、" --single-quoted"オプションを参照してください。
- --calendar text height width day month year
- calendar ボックスは、別々に調整可能なウィンドウに月、日と年を表示します。日、月または年の値が指定されていないか、または負であるなら、現在の日付に相当する値が使用されます。利用者は、左、上、右、下の矢印を使用してそれらのいずれかを増加するか、または減少させることができます。 1 月の日の配列の周りを移動するために vi スタイルの h、j、k と l を使用します。ウィンドウの間を移動するためにタブまたはバックタブを使用します。 0 として年が与えられるなら、現在の日付は、最初の値として使用されます。
- 終了時に、日付は、形式、日/月/年で印刷されます。 --date-format オプションを使用して形式を上書きすることができます。
- --checklist text height width list-height [ tag item status ] ...
- checklist ボックスは、 menu ボックスと同様です。メニューの形式で表示される複数のエントリがあります。別の違いは、エントリが status を on に設定することによって選択されていることを示すことができることです。エントリの中の 1 つのエントリを選択する代わりに、ユーザによって、各エントリをオンまたはオフに切り替えることができます。各エントリの最初のオン/オフ状態は、 status によって指定されます。
- 終了時に、オンに切り替えられたそれらのエントリの tag 文字列のリストは、 dialog の出力に印刷されます。
- " --separate-output"オプションが与えられないなら、文字列は、それらを分離するスクリプトを簡単にするために必要に応じてクォートされます。デフォルトで、これは、ダブルクォートを使用します。クォートの振る舞いを変更する " --single-quoted"オプションを参照してください。
- --dselect filepath height width
- ディレクトリ選択 dialog は、利用者がディレクトリとディレクトリ名があるウィンドウの上でタイプできるテキストエントリのウィンドウを表示します。
- ここで、 filepath は、ディレクトリウィンドウがパスの内容を表示し、テキストエントリのウィンドウは、前もって選択されたディレクトリを含む場合にフルパスであるかもしれません。
- ウィンドウの間で移動するためにタブまたは矢印キーを使用します。ディレクトリウィンドウの中では、現在の選択をスクロールするために上/下矢印キーを使用します。現在の選択をテキストエントリのウィンドウにコピーするために空白バーを使用します。
- 印刷可能な文字をタイプすることは、マッチする最も近くのディレクトリウィンドウをスクロールのと同様にその文字を入力する、テキストエントリのウィンドウへの焦点を切り替えます。
- テキストエントリのウィンドウの現在の値を受け付けるために復帰改行または "OK"ボタンを使用し、終了します。
- 終了時に、テキストエントリのウィンドウの内容は、 dialog の出力に書き込まれます。
- --editbox filepath height width
- エディットボックス dialog は、ファイルのコピーを表示します。利用者は、タイプエラーを修正するために backspace、 delete とカーソルキーを使用してそれを編集できます。また、それは、pageup/pagedown を認識します。 --inputbox と異なって、利用者は、 dialog をクローズするために "OK"または "Cancel"ボタンにタブで移動しなければなりません。ボックス中で "Enter"キーを押すと、対応する行は分割されます。
- 終了時に、編集ウィンドウの内容は、 dialog の出力に書き込まれます。
- --form text height width formheight [ label y x item y x flen ilen ] ...
-
form dialog は、スクリプトで与えられた座標によってスクロール可能なウィンドウで位置づけされるラベルとフィールドから成る形式を表示します。フィールド長 flen と入力長 ilen は、そのフィールドがどれくらい長いかを伝えます。前者は、選択フィールドのための表示された長さを定義し、一方後者は、フィールドに入力されたデータの許容される長さを定義します。
- •
- flen が 0 であるなら、対応するフィールドを変更することはできません。そして、そのフィールドの内容は、表示される長さを決定します。
- •
- flen が負であるなら、対応するフィールドを変更することができません、そして、 flen の負の値は、表示される長さとして使用されます。
- •
- ilen が 0 であるなら、それは、 flen に設定されます。
- フィールドの間で移動するために、上/下矢印 (または、コントロール/N、コントロール/P) を使用します。ウィンドウの間で移動するためには、タブを使用します。
- 終了時に、その形式フィールドの内容は、改行によって分離された各フィールドとして、 dialog の出力に書き込まれます。 ( flen が 0 または負である) 編集不可能なフィールドを満たすために使用されるテキストは、書き込まれません。
- --fselect filepath height width
- fselect (ファイル選択) dialog は、利用者がファイル名 (または、ディレクトリ) をタイプできるディレクトリ名とファイル名がある 2 つのウィンドウの上のテキストエントリのウィンドウを表示します。
- ここで、 filepath は、ファイルとディレクトリのウィンドウがパスの内容を表示し、テキストエントリのウィンドウが前もって選択されたファイル名を含む場合のファイルパスを指定できます。
- ウィンドウの間で移動するためには、タブまたは矢印キーを使用します。ディレクトリまたはファイル名のウィンドウの中で、現在の選択をスクロールするためには、上/下矢印キーを使用します。テキストエントリのウィンドウに現在の選択をコピーするためには、空白バーを使用します。
- 印刷可能な文字をタイプすると、マッチする最も近くのディレクトリとファイル名のウィンドウをスクロールのと同様にその文字を入力する、テキストエントリのウィンドウへの焦点を切り替えます。
- 空白文字ををタイプすることは、強制的に dialog に、 (1 つ以上のエントリに対戦するポイントまでの) 現在の名前を完了させます。
- テキストエントリのウィンドウで現在の値を受け付けるために復帰改行または "OK"ボタンを使用し、終了します。
- 終了時に、テキストエントリのウィンドウの内容は、 dialog の出力に書き込まれます。
- --gauge text height width [percent]
- gauge ボックスは、ボックスの下端に沿って 1 つのメータ表示します。メータは、パーセンテージを示します。新しいパーセンテージは、標準入力から 1 行毎に 1 つの整数を読み込みます。メータは、各新しいパーセンテージを反映するために更新されます。標準入力が文字列 "XXX"を読み込むなら、最初の行の次は、整数のパーセンテージとして取られ、次に、別の "XXX"までのその後の行は、新しいプロンプトのために使用されます。標準入力で EOF に到達したとき、ゲージは、終了します。
- percent 値は、メータで表示される初期のパーセンテージを示します。指定されないなら、それは、0 です。
- 終了時に、テキストは、 dialog の出力に書き込まれません。 widget は、入力を受け付けないので、終了ステータスは、常に OK です。
- --infobox text height width
- info ボックスは、基本的な message ボックスです。しかしながら、この場合、 dialog は、ユーザにメッセージを表示した直後に終了します。画面は、 dialog が終了するとき、メッセージが画面に残るように、呼び出すシェルスクリプトが後でそれをクリアするまでクリアされません。これは、いくつかの操作が、終了するためにいくらかの時間が必要であることをユーザに知らせたいとき、役に立ちます。
- 終了時に、テキストは、 dialog の出力に書き込まれません。 "OK"ボタンだけが入力のために提供されますが、 ESC 終了ステータスが返えされます。
- --inputbox text height width [init]
- input ボックスは、答えとして文字列を入力するユーザを必要とする質問に問い合わせたいとき、役に立ちます。 init が供給されるなら、入力文字列を初期化するために、それを使用します。文字列を入力するとき、タイプエラーを修正するために backspace、 delete とカーソルキーを使用することができます。入力文字列が dialog ボックスに適合するより長いなら、入力フィールドは、スクロールされます。
- 終了時に、入力文字列は、 dialog の出力に印刷されます。
- --inputmenu text height width menu-height [ tag item ] ...
- inputmenu ボックスは、普通の menu ボックスと非常に似ています。それらの間には、ほんのいくつかの違いがあります:
- 1.
- エントリは、自動的に中心に置かれませんが、調整されたままにされます。
- 2.
- 特別なボタン ( Rename と呼ばれる) は、それが押されるとき、現在の項目の名前を変える意味を含まれます。
- 3.
- Rename ボタンを押すことによって現在のエントリの名前を変えることができます。次に、 dialog は、 dialog の出力に続いて書き込まれます。
- RENAMED <tag> <item>
- --menu text height width menu-height [ tag item ] ...
- 名前が示すように、 menu ボックスは、ユーザが選択するメニューの形式で選択のリストを提示するために使用できる dialog ボックスです。選択は、与えられた順序で表示されます。各メニューエントリは、 tag 文字列と item 文字列から成ります。 tag は、メニューの他のエントリと区別する名前のエントリを与えます。 item は、エントリが表すオプションの短い記述です。ユーザは、カーソルキー、ホットキーとしての tag の最初の文字、または数字キー 1-9 を押すことによって、メニュー項目の間で移動することができます。同時にメニューに表示された menu-height がありますが、メニューは、それより多くのエントリがあるなら、スクロールされます。
- 終了時に、選択されたメニューエントリの tag は、 dialog の出力に印刷されます。 " --help-button"オプションが与えられ、ユーザがヘルプボタンを選択するなら、対応するヘルプテキストが印刷されます。
- --mixedform text height width formheight [ label y x item y x flen ilen itype ] ...
-
mixedform dialog は、 --form dialog にそっくりのラベルとフィールドから成る形式で表示します。それは、各フィールド記述にフィールドタイプを追加することによって異なります。タイプの各ビットは、そのフィールドの属性を意味します:
- 1
- 隠されます、例えば、パスワードフィールド。
- 2
- 読み込み専用、例えば、ラベル。
- --mixedgauge text height width percent [ tag1 item1 ] ...
- mixedgauge ボックスは、ボックスの下端に沿って 1 つのメータを表示します。メータは、パーセンテージを示します。
- また、ボックスの上端に tag-値と item-値のリストを表示します。タグ値については、dialog(3) を参照してください。
- text は、リストとメータの間の見出しとして表示されます。 percent 値は、メータに示される初期のパーセンテージを示します。
- 供給は、 --gauge で行うように、標準入力からデータを読み込むために行われません。
- 終了時に、テキストは、 dialog の出力に書き込まれません。 widget は、入力を受け付けないので、終了ステータスは、常に OK です。
- --msgbox text height width
- message ボックスは、 yes/no ボックスと非常に似ています。 message ボックスと yes/no ボックスの違いは、 message ボックスに、単一の OK ボタンしかないということです。好みの任意のメッセージを表示するために、この dialog ボックスを使用することができます。メッセージを読み込んだ後に、ユーザは、 dialog が終了し、呼び出すシェルスクリプトが操作を続けることができるように、 ENTER キーを押すことができます。
- メッセージがスペースに大き過ぎるなら、基本的な curses の実装が十分利用可能であるという条件で、利用者は、 dialog によって、それをスクロールすることができます。この場合、パーセンテージは、widget のベースに表示されます。
- 終了時に、テキストは、 dialog の出力に書き込まれません。入力のために "OK"ボタンだけが提供されますが、ESC 終了ステータスが返されます。
- --pause text height width seconds
- pause ボックスは、ボックスの下端に沿って 1 つのメータ表示します。メータは、ポーズ (pause) の終わりまで、残っていいる秒数を示します。タイムアウトに到達するか、またはユーザが、OK ボタン (状態 OK) を押すか、またはユーザが、CANCEL ボタンまたは Esc キーを押すとき、ポーズ (pause) は、終了します。
- --passwordbox text height width [init]
- password ボックスは、ユーザが入力するテキストが表示されないことを除いて、 input ボックスと同様です。これは、パスワードか、または他の慎重を期する情報のためのプロンプトを表示するとき、役に立ちます。何か "init"が渡されるなら、システムのプロセステーブルで無頓着な snooper (詮索好き) に目に見えるようになる可能性があります。また、ユーザには、彼らが見ることができないデフォルトパスワードでそれらを提供するのも非常に紛らわしいことです。これらの理由によって、"init"を使用することは、非常にお勧めでききません。パスワードを心配しないなら、" --insecure"を参照してください。
- 終了時に、入力文字列は、 dialog の出力に印刷されます。
- --passwordform text height width formheight [ label y x item y x flen ilen ] ...
-
これは、すべてのテキストフィールドが inputbox widget でなく password widget のように扱われることを除いて、 --form と同じです。
- --prgbox text command height width
- --prgbox command height width
- prgbox は、 programbox と大変よく似ています。
- この dialog box は、引数として prgbox に指定されるコマンドの出力を表示するために使用されます。
- コマンドが完了した後に、その dialog が終了して、呼び出されるシェルスクリプトが動作し続けることができるように、ユーザは、 ENTER キーを押すことができます。
- 3 つのパラメータが与えられるなら、スクロールされるファイルの内容から描かれたタイトルの下にテキストを表示します。 2 つのパラメータだけが与えられるなら、このテキストは、省略されます。
- --programbox text height width
- --programbox height width
- programbox は、 progressbox と大変よく似ています。 program box と progress box の唯一の違いは、 program box が OK ボタンを表示するということです (が、コマンドが完了して後だけです)。
- この dialog box は、コマンドのパイプ化された出力を表示するために使用されます。コマンドが完了した後に、その dialog が終了して、呼び出されるシェルスクリプトが動作し続けることができるように、ユーザは、 ENTER キーを押すことができます。
- 3 つのパラメータが与えられるなら、スクロールされるファイルの内容から描かれたタイトルの下にテキストを表示します。 2 つのパラメータだけが与えられるなら、このテキストは、省略されます。
- --progressbox text height width
- --progressbox height width
- progressbox は、次のことを除いて、 tailbox と同様です。
- a) ファイルに内容を表示することでなく、
- コマンドのパイプに送られた出力を表示します。
- b) ファイルの終りに到着するとき、終了します ("OK"ボタンがありません)。
- 3 つのパラメータが与えられるなら、スクロールしているファイルの内容から描かれる、タイトルの下にテキストを表示します。 2 つのパラメータだけが与えられるなら、このテキストは、省略されます。
- --radiolist text height width list-height [ tag item status ] ...
- radiolist ボックスは、 menu ボックスと同様です。唯一の違いは、 status を on に設定することによって、エントリが現在選択されていることを示すことができることです。
- 終了時に、選択された項目のタグは、 dialog の出力に書き込まれます。
- --tailbox file height width
- "tail -f"コマンドのように dialog ボックスにファイルからのテキストを表示します。 vi スタイルの 'h' と 'l' または矢印キーを使用して、左/右にスクロールします。 '0' は、スクロールをリセットします。
- 終了時に、テキストは、 dialog の出力に書き込まれません。入力のために "OK"ボタンだけが提供されますが、ESC 終了ステータスが返されます。
- --rangebox text height width list-height min-value max-value default-value
-
ユーザは、例えば、スライダを使用して、値の範囲から選択することができます。 dialog は、(ゲージ dialog のような) 棒として現在の値を表示します。タブまたは矢印キーは、ボタンと値の間のカーソルを移動させます。カーソルが値の上にあるとき、次のものによって、それを編集することができます:
- left/right
- 修正する数字を選択するカーソル移動
- +/-
- 数字を 1 だけ増加/減少する文字
- 0 から 9
- 与えられた値に数字を設定する
- また、いくつかのキーは、すべてのカーソル位置で認識されます:
- home/end
- 値をその最大または最小に設定します
- pageup/pagedown
- スライダが 1 カラムによって移動できるように、値を増加します
- --tailboxbg file height width
- "tail -f &"コマンドでのように、バックグラウンドタスクとして dialog ボックスにファイルからのテキストを表示します。 vi スタイルの 'h' と 'l' または矢印キーを使用して、左/右にスクロールします。 '0' は、スクロールをリセットします。
- スクリーンに他の widget ( --and-widget) が同時にあるなら、 dialog は、特に、バックグラウンドタスクを扱います。それらの widget がクローズされるまで (例えば、"OK")、 dialog は、同じプロセス (更新のためのポーリング) で tailboxbg widget のすべてを実行します。利用者は、画面で widget の間を横断するためにタブを使用でき、例えば、 ENTER を押すことによって、個別にそれらをクローズすることができます。 tailboxbg でない widget がいったんクローズされると、 dialog は、それ自体のコピーをバックグラウンドに fork し、" --no-kill"オプションが与えられるなら、プロセス ID を印刷します。
- 終了時に、テキストは、 dialog の出力に書き込まれません。入力のために "EXIT"ボタンだけが提供されますが、ESC 終了ステータスが返されます。
- 注意: dialog の古いバージョンは、すぐに、fork して、個別に画面を更新することを試みました。性能が悪くなること以外に、それは、役に立ちませんでした。いくつかの古いスクリプトは、ポーリングされたスキームで適切に動作しないかもしれません。
- --textbox file height width
- text ボックスによって、dialog ボックスにテキストファイルの内容を表示できます。それは、簡単なテキストファイルのビューア (viewer) に似ています。ユーザは、ほとんどのキーボードで利用可能な、カーソル、page-up、page-down と HOME/END キーを使用することによって、ファイルを通して移動することができます。行がボックスに表示できないくらい長いなら、テキスト領域を水平にスクロールするために LEFT/RIGHT キーを使用することができます。また、カーソルキーの代わりに vi スタイルキーの h、j、k、l を、 page-up と page-down キーの代わりに B と N を使用することができます。 vi スタイル 'k' と 'j' または矢印キーを使用して上/下にスクロールします。 '0' は、左/右スクロールをリセットします。より便利なように、vi スタイルの前進と後進検索関数も提供されています。
- 終了時に、テキストは、 dialog の出力に書き込まれません。入力のために "EXIT"ボタンだけが提供されますが、ESC 終了ステータスが返されます。
- --timebox text height [width hour minute second]
- 時間、分と秒を選択できる dialog を表示します。時間、分または秒のための値が失われているか、または負であるなら、現在の日付に対応する値が使用されます。 left-、up-、right- と down-矢印を使用してそれらのいずれかを増加するか、または減少することができます。ウィンドウの間を移動するためにタブまたは backtab を使用します。
- 終了時に、結果は、hour:minute:second の形式で印刷されます。 --time-format オプションを使用して形式を上書きすることができます。
- --treeview text height width list-height [ tag item status depth ] ...
- ツリーとして組織化されたデータを表示します。データの各グループは、タグ、項目のために表示するテキスト、その状態 ("on"または "off") とツリーの項目の深さを含んでいます。
- 1 つの項目だけを選択することができます ( radiolist のように)。タグは、表示されません。
- 終了時に、選択された項目のタグは、 dialog の出力に書き込まれます。
- --yesno text height width
- width カラムでサイズ height 行の yes/no dialog ボックスが表示されます。 text によって指定された文字列は、 dialog ボックスの内側に表示されます。この文字列が 1 つの行に適合することができないくらい長いなら、適切な場所で複数の行に自動的に分割されます。また、 text 文字列は、明白な行のブレークを制御するために部分文字列 \n または改行文字 `\n' も含むことができます。この dialog ボックスは、yes または no に答えるユーザを必要とする質問の問い合わせの役に立ちます。 dialog ボックスには、ユーザが TAB キーを押すことによって切り替えることができる、 Yes ボタンと No ボタンがあります。
- 終了時に、テキストは、 dialog の出力に書き込まれません。 "Yes"と "No"終了コード (「診断」参照) に加えて、 ESC 終了ステータスが返されます。
- "Yes"と "No"のために使用されるコードは、内部的に区別されない "OK"と "Cancel"に使用されるものにマッチします。
古くなったオプション
- --beep
- これは、tailboxbg widget の別のプロセスが、画面を塗り替えるとき、ビープ音を鳴らすべきかオリジナルの cdialog に伝えるために使用されました。
- --beep-after
- ユーザがボタンの 1 つを押すことによって widget を完了した後に、ビープ音を鳴らします。
実行時設定
- 1.
- 次をタイプすることによって、サンプル設定ファイルを作成します:
"dialog --create-rc <file>"
- 2.
- 始めに、 dialog は、次のように使用する設定を決定します:
- a)
- 環境変数 DIALOGRC が設定されているなら、その値は、設定ファイルの名前を決定します。
- b)
- (a) のファイルが見つけられないなら、設定ファイルとしてファイル $HOME/.dialogrc を使用します。
- c)
- (b) のファイルが見つけられないなら、コンパイル時に決定される GLOBALRC ファイルの使用を試みます、すなわち、 /etc/dialogrc。
- d)
- (c) のファイルが見つけられないなら、デフォルトでコンパイルされたものを使用します。
- 3.
- サンプル設定ファイルを編集し、上記のステップ 2 に述べられているように、 dialog が見つけることができる、いくつかの場所にそれをコピーします。
キーバインディング
設定ファイルに追加することによって、 dialog のキーバインディングを上書きするるか、または追加することができます。 dialog の bindkey コマンドは、単一のキーを内部のコードにマップします。
bindkey widget curses_key dialog_key
widget 名は、"*" (すべての widget) または textbox のような特有の widget を指定できます。特有の widget のバインディングは、"*" バインディングを上書きします。ユーザ定義のバインディングは、組み込みのバインディングを上書きします。
curses_key は、 curses.h から派生する名前のいずれを指定できます、例えば、"KEY_HELP"。また、 dialog は、"~A"と "~?"のような C1-control と同様に "^A", "^?"のような ANSI 制御文字を解釈します。最後に、あらゆる単一の文字をバックスラッシュでエスケープすることができます。
dialog の内部のキーコード名は、 dlg_keys.h の DLG_KEYS_ENUM タイプに対応します、例えば、"DLGK_HELP"からの "HELP"。
widget 名
いくつかの widget (formbox のような) には、フィールドを編集することができる領域があります。サブウィンドウが異なる名前を使用して登録されるので、それらは、widget のサブウィンドウで管理され、主な widget からの個別のキーバインディングがあります。Widget | Window name | Subwindow Name |
calendar | calendar | |
checklist | checklist | |
editbox | editbox | editbox2 |
form | formbox | formfield |
fselect | fselect | fselect2 |
inputbox | inputbox | inputbox2 |
menu | menubox | menu |
msgbox | msgbox | |
pause | pause | |
progressbox | progressbox | |
radiolist | radiolist | |
tailbox | tailbox | |
textbox | textbox | searchbox |
timebox | timebox | |
yesno | yesno |
いくつかの widget は、実際に振る舞いを修正するために内部の設定を使用する他の widget です。それらは、実際の widget と同じ widget 名を使用します:
Widget | Actual Widget |
dselect | fselect |
infobox | msgbox |
inputmenu | menu |
mixedform | form |
passwordbox | inputbox |
passwordform | form |
prgbox | progressbox |
programbox | progressbox |
tailboxbg | tailbox |
組み込みのバインディング
このマニュアルページは、実行している dialog によって、その詳細情報を取得することができるので、各 widget のキーのバインディングをリストしません。利用者が --trace オプションを設定するなら、 dialog は、それが登録されるように、各 widget のためにキーバインディングの情報を書き込みます。使用例
通常、 dialog は、ボタン間の操作と dialog の編集部分対編集部分内を操作することに対して異なるキーを使用します。すなわち、タブ (とバックタブ) は、矢印キーが編集部分内のフィールドを行き来する間に、ボタンを (または、ボタンと編集部分の間で) 行き来します。また、タブは、例えば、複数の tailboxbg widget を使用するとき、 widget の間を行き来するための特殊な場合として認識されます。あるユーザは、ボタンの間を行き来することに関して編集部分内を行き来するためと同じキーを使用したいと思うかもしれません。 form widget は、"form" (left/right/next/prev) に対して <code>dlgk_keys.h</code>の特別のグループを追加することによって、この種のキーの再定義をサポートするために書き込まれます。ここに、これを行う方法を明示する実行例のバインディングを示します:
bindkey formfield TAB form_NEXT
bindkey formbox TAB form_NEXT
bindkey formfield BTAB form_prev
bindkey formbox BTAB form_prev
そのタイプの再定義は、行き来する潜在的に多くのフィールドにより、他の widget、例えば、calendar の役に立ちません。
環境変数
- DIALOGOPTS
- 各 widget に共通のオプションのいずれかを適用するために、この変数を定義します。共通のオプションの大部分は、各 widget を処理する前に、リセットされます。この環境変数にオプションを設定するなら、それらは、リセットの後に dialog の状態に適用されます。 " --file"オプションのように、ダブルクォートとバックスラッシュが解釈されます。
- " --file"オプションは、共通オプションと見なされません (したがって、この環境変数内にそれを埋め込むことは、できません)。
- DIALOGRC
- 使用する設定ファイルの名前を指定したいなら、この変数を定義します。
- DIALOG_CANCEL
- DIALOG_ERROR
- DIALOG_ESC
- DIALOG_EXTRA
- DIALOG_HELP
- DIALOG_ITEM_HELP
- DIALOG_OK
- Cancel (1)、 error (-1)、 ESC (255)、 Extra (3)、 Help (2)、 Help with --item-help (2)、 --item-help (2) がついた Help、または OK (0) で終了コードを変更するために、これらの変数のいずれかを定義します。通常、シェルスクリプトは、-1 と 255 を区別できません。
- DIALOG_TTY
- " --stdout"オプションが与えられ、スクリプトが標準出力をリダイレクトするならと仮定する dialog の古いバージョンとの互換性に提供するためには、この変数を "1"に設定します。
関連ファイル
- $HOME/.dialogrc
- デフォルトの設定ファイル
使用例
dialog ソースは、どのように異なったボックスのオプションを使用するか、そして、それらがどのように見えるか、いくつかのサンプルを含んでいます。ちっと、ソースのディレクトリ samples/ を調べてください。診断
終了ステータスは、環境変数によって上書きされて影響を受けます。それらを上書きすることができるデフォルト値と対応する環境変数は、次の通りです:- 0
- YES または OK ボタンが押されるなら (DIALOG_OK)。
- 1
- No または Cancel ボタン (DIALOG_CANCEL) が押されるなら。
- 2
-
Help ボタンが押されるなら (DIALOG_HELP)、
- 3
- Extra ボタン (DIALOG_EXTRA) が押されるなら。
- 4
-
Help ボタンが押され、
- 環境変数を使用して、終了コードのどれでも、上書きすることができますが、この特殊な場合は、互換性を単純化するために 2004 年に導入されました。 dialog は、DIALOG_ITEM_HELP(4) を内部的に使用しますが、環境変数も設定されていないなら、終了時に DIALOGXHELP(2) に変更します。
- -1
- エラーが dialog の内部で生じるか (DIALOG_ERROR)、または ESC キー (DIALOG_ESC) が押されたので、 dialog が終了するなら。
移植性
dialog は、X/Open curses で動作しています。しかしながら、いくつかの実装には、欠陥があります:- •
- HPUX curses (と、おそらく他のもの) は、 newterm 関数のために適切に端末をオープンしません。これは、カーソルキーと同様のエスケープシーケンスが認識されることを防ぐことによって、 dialog の --input-fd オプションに干渉します。
- •
- NetBSD 5.1 curses のワイド文字のサポートは不完全です。 dialog は、構築しますが、すべての例が適切に表示するというわけではありません。
互換性
利用者は、他の dialog "クーロン"で走るスクリプトを書きたいかもしれません。オリジナルの DIALOG
最初に、考慮する "オリジナル"の dialog プログラム (バージョン 0.3 から 0.9) があります。それには、いくつかのスペルミスの (または、矛盾する) オプションがありました。 dialog プログラムは、それらの推奨しないオプションを都合のものにマップします。それらは、次の通りです:オプション | 処理 |
--beep-after | ignored |
--guage | mapped to --gauge |
XDIALOG
技術的に、" Xdialog"、これは、X のアプリケーションです。少し注意すれば、 Xdialog と dialog の両方で動作する役に立つスクリプトを書くことは、可能です。dialog プログラムは、 Xdialog によって認識される、次のオプションを無視します:
オプション | 処理 |
--allow-close | ignored |
--auto-placement | ignored |
--fixed-font | ignored |
--icon | ignored |
--keep-colors | ignored |
--no-close | ignored |
--no-cr-wrap | ignored |
--screen-center | ignored |
--separator | mapped to --separate-output |
--smooth | ignored |
--under-mouse | ignored |
--wmclass | ignored |
Xdialog のマニュアルページには、 dialog との互換性を議論するセクションがあります。いくつかの違いは、マニュアルページで表示されていません。例えば、html の文書の状態は、次の通りです
注: 前の Xdialog リリースは、checklist widget のための結果のセパレータのように "0 (改行) を使用します。これは、Xdialog v1.5.0 の "/"に変更されたので、(c)dialog との互換性があります。 Xdialog checklist を使用する古いスクリプトでは、次に、--checklist のものの前に --separate-output オプションを追加しなければなりません。
dialog は、異なるセパレータを使用していません。違いは、恐らくいくつかのスクリプトに関する混乱のためです。
WHIPTAIL
それから、 whiptail があります。実際的な目的のために、(作業は、その上流の開発者によって全く行われていません) Debian によって保守されています。その、文書 (README.whiptail) の主張は、whiptail(1) は、シェルスクリプトのための dialog ボックスを提供する
dialog(1) のための軽い代替品です。
それは、インストーラ、レスキューディスクなどのような組み込まれた環境で
より小さくできる、ncurses ライブラリでなく newt ウィンドウライブラリで
構築されます。
whiptail は、dialog とのドロップイン (drop-in) 互換性があるように
設計されていますが、少ない機能しかありません:
いくつかの dialog ボックスは、tailbox、timebox、calendarbox などが
実装されていません。
実際のサイズの比較 (Debian テスト, 2007/1/10): whiptail、newt、popt と slang ライブラリのサイズの合計は、757kb です。 dialog (ncurses も含めて) のための比較の数は、520kb です。最初のパラグラフを無視します。
whiptail は、gauge ボックスのような、 dialog の共通のオプションのために動作しないので、2 番目のパラグラフは、誤る恐れがあります。 whiptail は、1990年代半ばのオリジナルの dialog 0.4 プログラムより dialog との互換性がありません。
whiptail のマニュアルページは、 dialog から機能を借りていますが、例えば、しかし、奇妙にもソースとして、最大 0.4 (1994) までの dialog バージョンのみ引用しています。すなわち、そのマニュアルページは、 dialog のより最近のバージョンから借りられた機能を参照しています、例えば、
- •
- --gauge (0.5 から)
- •
- --passwordbox (1999 年の Debian の変更から),
- •
- --default-item ( dialog 2000/02/22 から),
- •
- --output-fd ( dialog 2002/08/14 から).
いくらかユーモラスに、 whiptail のマニュアルページで言及される約 1 年前に、 dialog のマニュアルページ文書化されたエスケープとして "--"を使用する (マニュアルページで文書化されていない) popt 機能に注意します。 whiptail のマニュアルページは、 getopt にとって不正確な結果と考えます (そして、とにかく不正確です)。
Debian は、公式の dialog 変化物に対して whiptail を使用します。
dialog プログラムは、 whiptail によって認識される、これらのオプションを、無視するか、またはマップします:
オプション | 処理 |
--cancel-button | mapped to --cancel-label |
--fb | ignored |
--fullbutton | ignored |
--no-button | mapped to --no-label |
--nocancel | mapped to --no-cancel |
--noitem | mapped to --no-items |
--notags | mapped to --no-tags |
--ok-button | mapped to --ok-label |
--scrolltext | mapped to --scrollbar |
--topleft | mapped to --begin 0 0 |
--yes-button | mapped to --yes-label |
コマンドラインオプションによって取り組まれない次のような目に見える違いがあります:
- •
- dialog は、ウィンドウ内のリストをセンタリングします。 whiptail は、一般的にレフトマージンに対するリストを置きます。
- •
- whiptail は、ボタンをマークするために鍵括弧 ("<"と ">") を使用します。 dialog は、角括弧を使用します。
- •
- whiptail は、垂直の棒があるサブタイトルの範囲をマークします。 dialog は、範囲をマークしません。
- •
- whiptail は、上向き/下向き矢印でスクロールバーの上端/下端のセルをマークすることを試みます。これを行なうことができないとき、スクロールバーの背景色を備えた、それらのセルとユーザを混乱させることを満たします。 dialog は、スクロールバー空間全体を使用し、それによって、よりよい解決策を得ます。
バグ
たぶんあります。作者
Thomas E. Dickey (0.9b 以降の更新)寄贈者
Kiran Cherupally - 混合した形式と混合した gauge widget。Tobias C. Rittweiler
Valery Reznic - 形式と progressbox widget。
Yura Kalinichenko は、"pause"として gauge widget を適合させました。
これは、次の作者としてリストされた dialog 0.9a の初期のバージョン (互換性を提供するために必要なことを除いて) の書き直しです:
- •
- Savio Lam - バージョン 0.3 の "dialog"
- •
- Stuart Herbert - バージョン 0.4 のためのパッチ
- •
- Marc Ewing - gauge widget。
- •
- Pasquale De Marco "Pako" - バージョン 0.9a の "cdialog"
$Date: 2013/09/02 17:38:36 $ |