como pegar o resultado de um checklist [RESOLVIDO]

1. como pegar o resultado de um checklist [RESOLVIDO]

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 19/02/2017 - 20:09h

Olá,
estou desenvolvendo um script shell dessa vez com caixa de ferramentas pra ficar mais bonito
estou fazendo um checklist no qual o usuario poderá fazer multiplas seleções.
será um script para instalar plugins para cpanel/whm.
a ideia é a seguinte o usuario seleciona quais plugins deseja instalar.
consegui chegar na metade porem me perdi.
por exemplo o script tem Item1" "Item2" "Item3" "Item4" "Item5" "Item6
o problema é que preciso fazer o seguinte:
se o usuario selecionar o item1 e item2 o script faz uma determinada função
por exemplo pensei em algum array tipo
nomes=("Item1" "Item2" "Item3" "Item4" "Item5" "Item6")
valores=( 1 2 3 4 5 6)
ou seja se ele selecionar item1, item2 o array vai retornar
você selecionou o item1 item2 correspondente ao valor 1 2
é ai que me perdi.

segue o que já fiz até o momento

#!/bin/bash
SHELL=/bin/sh
PATH=/sbin:/usr/sbin:/usr/bin:/bin

dialog --backtitle 'instalador de Plugins Cpanel/WHM' \
--msgbox 'Bem-vindo ao instalador!' 7 30

ESCOLHA=$(dialog --stdout --checklist 'Escolha os plugin para instalação' \
0 0 0 Item1 'descricao do Item1' on \
Item2 'Descricao do Item2' off \
Item3 'Descricao do Item3' off \
Item4 'Descricao do Item4' off \
Item5 'Descricao do Item5' off\
Item6 'Descricao do Item6' off)
dialog --msgbox "Os Plugins Escolhidos foram:: $ESCOLHA" 7 30

clear

# Array

nomes=("Item1" "Item2" "Item3" "Item4" "Item5" "Item6")
valores=( 1 2 3 4 5 6)





  


2. MELHOR RESPOSTA

Renan Arantes
R3nan

(usa Debian)

Enviado em 20/02/2017 - 09:13h

não é só fazer um if verificando se foi escolhido o iten1 e iten2 ?

if [ "$ESCOLHA" == "Item1 Item2" ]; then
echo "voce escolheu os itens 1 e 2"
fi

3. Re: como pegar o resultado de um checklist

Leandro Bernardo
leandro.bernardo

(usa Debian)

Enviado em 19/02/2017 - 20:59h

Cara, porque não experimenta o case no lugar desse array aí ?


4. Re: como pegar o resultado de um checklist [RESOLVIDO]

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 20/02/2017 - 07:14h

leandro.bernardo escreveu:

Cara, porque não experimenta o case no lugar desse array aí ?



Olá,
Com case eu só conseguiria pegar um resultado por vez e eu preciso pegar todos os resultados que o usuário selecionar ao mesmo tempo.
é um checklist de múltiplas seleções.

---> Márcio M M <---


5. Re: como pegar o resultado de um checklist [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 20/02/2017 - 09:33h

Jogue as várias possibilidades de seleção em diferentes elementos de um array, e teste cada elemento.

result_array=( $(dialog --stdout --checklist ...) )

for (( i=0; i<${#result_array[@]}; i++ )); do
: Faz testes/transformações usando "${result_array[i]}".
done



6. Re: como pegar o resultado de um checklist [RESOLVIDO]

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 20/02/2017 - 11:34h

R3nan escreveu:

não é só fazer um if verificando se foi escolhido o iten1 e iten2 ?

if [ "$ESCOLHA" == "Item1 Item2" ]; then
echo "voce escolheu os itens 1 e 2"
fi



Olá,
Não por que não são iguais os itens e teria que verificar os 6 itens pois cada item é diferente

---> Márcio M M <---


7. Re: como pegar o resultado de um checklist [RESOLVIDO]

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 20/02/2017 - 11:35h

paulo1205 escreveu:

Jogue as várias possibilidades de seleção em diferentes elementos de um array, e teste cada elemento.

result_array=( $(dialog --stdout --checklist ...) )

for (( i=0; i<${#result_array[@]}; i++ )); do
: Faz testes/transformações usando "${result_array[i]}".
done



Olá,
opá acho que pode funcionar, vou testar mais tarde

---> Márcio M M <---


8. Re: como pegar o resultado de um checklist

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 20/02/2017 - 13:48h

Olá,
Consegui pessoal, seguindo a lógica do @R3nan
valeu pessoal


#!/bin/bash
SHELL=/bin/sh
PATH=/sbin:/usr/sbin:/usr/bin:/bin

dialog --backtitle 'instalador de Plugins Cpanel/WHM' \
--msgbox 'Bem-vindo ao instalador!' 7 30

ESCOLHA=$(dialog --stdout --checklist 'Escolha os plugin para instalação' \
0 0 0 Item1 'descricao do Item1' on \
Item2 'Descricao do Item2' off \
Item3 'Descricao do Item3' off \
Item4 'Descricao do Item4' off \
Item5 'Descricao do Item5' off\
Item6 'Descricao do Item6' off)
dialog --msgbox "Os Plugins Escolhidos foram:: $ESCOLHA" 7 30

clear

echo -n >/tmp/ipl.txt

echo -n >/tmp/ipl1.txt

echo -n >/tmp/ipl2.txt

echo -e "$ESCOLHA" >/tmp/ipl.txt

sed 's/ /\n/g' /tmp/ipl.txt >/tmp/ipl1.txt

cat /tmp/ipl1.txt | awk -F " " '{print "BB" $1 }' >/tmp/ipl2.txt

cat /tmp/ipl2.txt | sed -r 's/(BB)//g'|
while read BB
do

if [ "$BB" = "Item1" ]
then
echo -e " você selecionou o item1 "
elif [ "$BB" = "Item2" ]
then
echo -e " você selecionou o item2 "
elif [ "$BB" = "Item3" ]
then
echo -e " você selecionou o item3 "
elif [ "$BB" = "Item4" ]
then
echo -e " você selecionou o item4 "
elif [ "$BB" = "Item5" ]
then
echo -e " você selecionou o item5 "
elif [ "$BB" = "Item6" ]
then
echo -e " você selecionou o item6 "
else
echo -e " item selecionado não está na lista "
fi
done


---> Márcio M M <---


9. Re: como pegar o resultado de um checklist [RESOLVIDO]

Renan Arantes
R3nan

(usa Debian)

Enviado em 20/02/2017 - 14:09h

ae!! \o/






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts