Não tô acertando a sintaxe do --radiolist do kdialog

Iniciado por dacarpe, 18 de Dezembro de 2008, 10:27

tópico anterior - próximo tópico

dacarpe

Alguém me ajuda nessa sintaxe?
Ele executa até a exibição do --radiolist, mas não segue para os if's. Segue abaixo o meu script de estudo:

kdialog --title "Escolha" --radiolist 'Escolha uma das opções a seguir:' \
"opçao1" "Esta opção é boa" off \
"opçao2" "Esta opção é mai o meno" off \
"opçao3" "Esta opção é ruim" off \

$1 = "Opção 1"
$2 = "Opção 2"
$3 = "Opção 3"

if [$1 = "Opção 1"];
then
kdialog --msgbox "Show de bola"
fi

if [$2 = "Opção 2"];
then
kdialog --msgbox "O que houve?"
fi

if [$3 = "Opção 3"];
then
kdialog -- "Tá maluco?"
fi


Quem puder ajudar, agradeço. Se não for pedir muito, explicando, porque to estudando essa parada ae... :P
Ubuntu 10.10 + Windows 7
4GB Ram, Placa ECS A780GM-A com AMD Phenom II (Quad - 6MB de Cache) 2.66GHz, HD 500GB, Video 1GB (64 bits) on Board

clcampos

#1
Você só coloca um sinal de "$" na frente da variável quando quer usar seu conteúdo, portanto corrija as linhas em negrito abaixo:

Citarkdialog --title "Escolha" --radiolist 'Escolha uma das opções a seguir:' \
"opçao1" "Esta opção é boa" off \
"opçao2" "Esta opção é mai o meno" off \
"opçao3" "Esta opção é ruim" off     #  Tirei a \ daqui

1="Opção 1"
2="Opção 2"
3="Opção 3"

if [$1 = "Opção 1"];
then
kdialog --msgbox "Show de bola"
fi

if [$2 = "Opção 2"];
then
kdialog --msgbox "O que houve?"
fi

if [$3 = "Opção 3"];
then
kdialog -- "Tá maluco?"
fi

Mas vou te dizer que ele vai entrar nos três IF's. Acho que você ainda não entendeu o espírito do kdialog, ou do shell script.

Experimente colocar o comando kdialog jogando direto seu resultado para uma variável, e ai teste apenas ela.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

alarcon

Opa, relembrando a elaboração de scripts em kadialog, por sinal chatinha :D, que tal assim:

#!/bin/bash

rm -f /tmp/resultado_temp
kdialog --title "Escolha" --radiolist "Escolha uma das opções a seguir:" 1 "Esta opção é boa" off 2 "Esta opção é mai o meno" off 3 "Esta opção é ruim" off 2> /dev/null > /tmp/resultado_temp
resultado_final=`cat /tmp/resultado_temp`
rm -f /tmp/resultado_temp

if [ "${resultado_final}" = "1" ]; then

kdialog --msgbox "Show de bola" 2> /dev/null

elif [ "${resultado_final}" = "2" ]; then

kdialog --msgbox "O que houve?" 2> /dev/null

elif [ "${resultado_final}" = "3" ]; then

kdialog --msgbox "Tá maluco?" 2> /dev/null

else

kdialog --msgbox "A instalação foi abortada" 2> /dev/null

fi

exit 0