bash-dialog で簡単なダイアログを作成したい。(X)DSL と bash-3.2 を使用しています。最新の (X)DSL は Linux 2.4.31 に基づいており、bash-2.05 が付属していますが、bash-3.2 は MyDSL/Testing からダウンロードできます。したがって、私のスクリプトは「#!/bin/bash-3.2/bin/bash」の下で実行されます。
ユーザーが選択できるメニュー項目は、データベースから取得されます。
データベースファイル「アーマチュア」の例:
屋内照明|屋内用照明
屋外照明|屋外用照明
「アーマチュア」ファイルから配列「オプション」にデータを取得します。
options=($(awk -F"|" '{ print $1,$2 }' アーマチュア)
そしてターミナルで配列を「エコー」します:
echo ${options[@]}
これは以下を示します:
「屋内用アーマチュア」 「屋内用照明」 「屋外用アーマチュア」 「屋外用照明」
これは 'whiptail' の選択メニューとして使用するのに問題ないように見えますが、そうではありません。コマンドライン:
whiptail --clear --title "アーマチュア" --menu "アーマチュアを選択" 50 80 10 ${options[@]}
ショー:
column1-column2
屋内アーマチュア
照明用
屋内用
屋外アーマチュア
照明用
屋外用
それ以外の:
column1-column2
屋内アーマチュア - 屋内用照明
屋外アーマチュア - 屋外用照明
'whiptail' では、二重引用符で囲まれた配列要素が無視されるか、表示されないようです。「${options[@]}」も試しましたが、常に最初の単語「Indoor」になります。
'whiptail' 以外に 'dialog' を試してみましたが、どちらも同じです。どちらの場合も、バージョン情報は 'cdialog (ComeOn Dialog!) version 1.1-20080316' と表示されます。
私はリソースが非常に限られているため、「xdialog」、「zenity」、「dzen」などに(まだ)冒険したくありません。たとえそれで問題が解決したとしてもです。また、XDSL (XBOX 用) のため、Linux 2.4.31 に制限されています。
私はインターネットをたくさん閲覧してきましたが、役に立ちませんでした。'whiptail/dialog' を使用した解決策は何ですか?