Autor Tópico: Chamar função com dialog checklist  (Lida 2770 vezes)

Offline emanoeljulio

  • Usuário Ubuntu
  • *
  • Mensagens: 94
    • Ver perfil
Chamar função com dialog checklist
« Online: 24 de Dezembro de 2008, 19:47 »
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:



Código: [Selecionar]
#!/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.

Offline raidicar

  • Usuário Ubuntu
  • *
  • Mensagens: 576
  • Quad Shot of Ubuntu
    • Ver perfil
Re: Chamar função com dialog checklist
« Resposta #1 Online: 04 de Janeiro de 2009, 02:47 »
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

  • Visitante
Re: Chamar função com dialog checklist
« Resposta #2 Online: 05 de Janeiro de 2009, 21:40 »
Não seria algo assim:

Código: [Selecionar]
#!/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:

Código: [Selecionar]
#!/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
« Última modificação: 06 de Janeiro de 2009, 19:11 por alarcon »