Array no menu whiptail - BASH

2

Gostaria de mostrar o menu whiptail de fácil utilização.

Meu objetivo em whiptail é este:

Choice1
Choice2
Choice3
Choice4

Eu tenho matriz consistem em:

Choice1 Choice2 Choice3 Choice4

Eu corro o array através do loop para isso:

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

Eu não pude adicionar whiptail dentro do eco porque recebo 4 outros menus.

Eu tentei script assim:

$val=$(whiptail --title "xx" --menu "choose" 16 78 10
for value in ${value[@]}
do
    echo "$value"
done
3>&1 1>&2 2>&3)

Após executar o script mencionado acima, meu shell parece horrível.

shell após script:

Existe alguém que resolve o meu problema?

    
por Michal N. 01.01.2016 / 20:43

1 resposta

2

Existem vários erros no seu script, por ex. você não deve dar ao iterador de loop o mesmo nome que o próprio array. No entanto, você não precisa de nenhum loop para essa tarefa, basta colocar todos os elementos da matriz de uma só vez com o índice de matriz especial @ :

value=(Choice1 "" Choice2 "" Choice3 "" Choice4 "")
whiptail --title "xx" --menu "choose" 16 78 10 "${value[@]}"

Observe que a string vazia está dentro daspas "" - essa é a descrição exigida pela opção whiptail menu, sem isso você trataria Choice e Choice4 como descrição:

Choice1 Choice2
Choice3 Choice4

o que provavelmente não é o que você quer.

    
por 01.01.2016 / 22:11