Chamar função com dialog checklist

Iniciado por emanoeljulio, 24 de Dezembro de 2008, 19:47

tópico anterior - próximo tópico

emanoeljulio

Salve galera.

Estou criando um script em que o usuário poderá selecionar a funções que deseja executar mas estou com uma dúvida qnto ao dialog checklist. Como faço para que ele execute as funções, exemplo:




#!/bin/bash

FUNCAO1 () {
codigo
codigo
codigo
}

FUNCAO2 () {
codigo
codigo
codigo
}

FUNCAO3 () {
codigo
codigo
codigo
}

FUNCAO4 () {
codigo
codigo
codigo
}

dialog                                      \
  --title 'Seleção dos Componentes'        \
  --checklist 'O que você quer instalar?'  \
  0 0 0                                    \
  FUNCAO1  'Chama função 01'  on    \
  FUNCAO2  'Chama função 02'  off   \
  FUNCAO3  'Chama função 03'  on    \
  FUNCAO4  'Chama função 04'  off



como faço para chamar as funções baseado nas opções do usuários.

raidicar

to quebrando a cabeça com isso também, fazer o checklist chamais as funções selecionadas...
de tanto quebrar a cabeça, vou usar o menu.

achei muito material bom sobre o dialog, mas quando só passam pelo checklist, não se aprofundam, não sei ainda como ele trata a os valores que ele armazena na variavel.
Quem ama extremamente, deixa de viver em si e vive no que ama. Na vida três coisas são certas, o amor, a morte e o Linux !
Se Platão disse, então realmente sofremos de uma perigosa doença mental.

alarcon

#2
Não seria algo assim:

#!/bin/bash

escolha=$(dialog                            \
   --title 'Seleção dos Componentes'        \
   --checklist 'O que você quer instalar?'  \
   0 0 0                                    \
   FUNCAO1  'Chama função 01'  on    \
   FUNCAO2  'Chama função 02'  off   \
   FUNCAO3  'Chama função 03'  on    \
   FUNCAO4  'Chama função 04'  off)



function principal {

       if echo "$escolha" | grep $"FUNCAO1"; then
               executar_funcao1        
       fi
       if echo "$escolha" | grep $"FUNCAO2"; then
               executar_funcao2               
       fi
       if echo "$escolha" | grep $"FUNCAO3"; then
               executar_funcao3             
       fi
       if echo "$escolha" | grep $"FUNCAO4"; then
               executar_funcao4             
       fi

}



function executar_funcao1 {
codigo
codigo
codigo
}

function executar_funcao2 {
codigo
codigo
codigo
}

function executar_funcao3 {
codigo
codigo
codigo
}

function executar_funcao4 {
codigo
codigo
codigo
}


principal


exit 0


OBS: Não fiz o teste, até por que eu entendo um pouquinho do zenity (gdialog) que é um pouco diferente do dialog na estrutura.

Se fosse usando o zenity no Ubuntu (gdialog) e não o kubuntu (kdialog), janelas gráficas chamadas pelo terminal seria algo assim:

#!/bin/bash

escolha=$(zenity --title 'Seleção dos Componentes' --text 'O que você quer instalar?' --list --checklist --width=400 --height=230 --column="" --column "Funções" --column "Descrição" TRUE FUNCAO1 'Chama função 01' FALSE FUNCAO2 'Chama função 02' TRUE FUNCAO3 'Chama função 03' FALSE FUNCAO4 'Chama função 04')


if [ "${escolha}" != "" ] ; then

function principal {

       if echo "$escolha" | grep $"FUNCAO1"; then
               executar_funcao1        
       fi
       if echo "$escolha" | grep $"FUNCAO2"; then
               executar_funcao2               
       fi
       if echo "$escolha" | grep $"FUNCAO3"; then
               executar_funcao3             
       fi
       if echo "$escolha" | grep $"FUNCAO4"; then
               executar_funcao4             
       fi

}



function executar_funcao1 {

echo "executou a função1"

}

function executar_funcao2 {

echo "executou a função2"

}

function executar_funcao3 {

echo "executou a função3"

}

function executar_funcao4 {

echo "executou a função4"

}


principal

exit 0

else

zenity --title="Cancelamento" --info --text " A instalação foi Abortada!"

exit 0

fi