ユーザーフレンドリーなwhiptail
メニューを表示したいと思います。
whiptail
での私の目標はこれです:
Choice1
Choice2
Choice3
Choice4
私は配列を持っています:
Choice1 Choice2 Choice3 Choice4
私はこのようにループを介して配列を実行します:
for value in ${value[@]}
do
echo "$value"
done
他に4つのメニューがあるため、echo内にwhiptail
を追加できませんでした。
私は次のようなスクリプトを試しました:
$val=$(whiptail --title "xx" --menu "choose" 16 78 10
for value in ${value[@]}
do
echo "$value"
done
3>&1 1>&2 2>&3)
上記のスクリプトを実行した後、私のシェルはひどいように見えます。
スクリプト後のシェル:
私の問題を解決する人はいますか?
スクリプトにいくつかのエラーがあります。ループイテレータに配列自体と同じ名前を付けないでください。ただし、このタスクにループは必要ありません。特別な配列インデックス@
を使用してすべての配列要素を一度に配置するだけです。
value=(Choice1 "" Choice2 "" Choice3 "" Choice4 "")
whiptail --title "xx" --menu "choose" 16 78 10 "${value[@]}"
引用符""
内の空の文字列に注意してください-これはwhiptail
メニューオプションに必要な説明です。それがないと、Choice
とChoice4
を説明として扱います。
Choice1 Choice2
Choice3 Choice4
おそらくあなたが望むものではないもの。