Bash

陣列到whiptail菜單 - BASH

  • November 22, 2021

我想顯示使用者友好的whiptail菜單。

我的目標whiptail是:

Choice1
Choice2
Choice3
Choice4

我的數組包括:

Choice1 Choice2 Choice3 Choice4

我通過循環執行數組,如下所示:

for value in ${value[@]}
do
   echo "$value"
done

我無法添加whiptail內部迴聲,因為我得到了另外 4 個菜單。

我試過這樣的腳本:

$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菜單選項所需的描述,如果沒有,您會將ChoiceChoice4視為描述:

Choice1 Choice2
Choice3 Choice4

可能不是你想要的。

引用自:https://unix.stackexchange.com/questions/252738