Funções em Shell Script [RESOLVIDO]

1. Funções em Shell Script [RESOLVIDO]

Ewerton Tiago
FIx3r

(usa Ubuntu)

Enviado em 16/02/2010 - 14:51h

Eu estou tentando aprender um pouco de shell script.
Tentei fazer um script com duas funções e fazer um dialog para o usuário escolher qual função executar.
Mas o script dá erro, e ainda não sei como fazer para validar a escolha do usuário.
Se alguém puder me ajudar...

Obrigado
------------------------------------------------------------------------------------------

#!/bin/bash

Principal(){
cont=dialog --yesno 'Gostaria de Prosseguir?' 0 0
if[[cont == "0"]] then
dialog --title 'Digite Seu Nome:' --inputbox '\n Nome:' 0 0

dialog --title 'Aguarde' --infobox '\n ...' 0 0

}

segunda(){
dialog --yesno 'deseja terminar?' 0 0
if [$? = 0]then
echo "ok!"

}

echo "escolha a função que você quer executar"

dialog --title 'Funções:' --inputmenu 'Escolha uma das funções para executar: ' 55 45 35 'Primeira' 'PHP' 'Segunda' 'Mysql' 'Terceira' 'Php Myadmin' 0 0


Primeira
sleep 5
segunda
sleep 5



  


2. case?

irado furioso com tudo
irado

(usa XUbuntu)

Enviado em 16/02/2010 - 15:45h

não estou vendo o parzinho case/esac na sua estrutura. Como não entendo do "dialog", até pode estar certo, mas bateu a dúvida.

vai daí (pela dúvida) fui pesquisar e encontrei êste tutorial, feito por nada menos que o "Aurélio Marinho Jargas", o cara que mais entende de Bash shell no brasil; vale a pena vc ler o tutorial, vai economizar cabelos:

http://aurelio.net/shell/dialog/#primeiro


3. O mais correto seria...

Perfil removido
removido

(usa Nenhuma)

Enviado em 16/02/2010 - 19:11h

#!/bin/bash

function primeira(){

dialog --yesno 'Gostaria de Prosseguir?' 0 0

if [ $? = 0 ]; then
dialog --title ' Digite Seu Nome:' --inputbox '\n Nome:' 0 0

dialog --title 'Aguarde' --infobox '\n ...' 0 0
fi
}


function segunda(){

dialog --title ' ' --yesno 'Deseja terminar?' 0 0

if [ $? = 0 ]; then
echo "ok!"
fi
}



dialog --title 'Funções:' --inputmenu 'Escolha uma das funções para executar: ' 55 45 35 'Primeira' 'PHP' 'Segunda' ' Mysql' 'Terceira' 'Php Myadmin'


primeira
sleep 3
segunda
sleep 3

exit

Recomendo que você mesmo ache os erros em seu código(algumas alterações são opcionais). Acho uma boa aula ler e escrever código o tipo de experiência que nenhuma formação tradicional do mundo pode ofertar. Viva o Linux...

Nota: rodei o código no GNU/Linux Debian Lenny


4. Resolvido

Ewerton Tiago
FIx3r

(usa Ubuntu)

Enviado em 17/02/2010 - 10:15h

Um amigo aqui da comunidade, Smithux, me ajudou com essa dúvida e consegui entender. Sou iniciante em shell script e to ralando pra aprender um pouco. Muito obrigado pela ajuda ae pessoal.

abraço.

----------------------
Smithux

E aí amigão!!!
Segue o script que você me pediu ajuda! :D

#################################
#!/bin/bash

temp_file="/tmp/opcao.tmp"

function Principal(){
rm -rf $temp_file
dialog --yesno 'Gostaria de Prosseguir?' 0 0
if [ $? -eq 0 ]; then
dialog --title 'Digite Seu Nome:' --inputbox '\n Nome:' 0 0
dialog --title 'Aguarde' --infobox '\n ...' 0 0
fi
}

function Secundaria(){
rm -rf $temp_file
dialog --yesno 'Deseja executar a segunda função?' 0 0
if [ $? == 0 ]; then
dialog --title '2ª Função!!!' --infobox 'Teste!!!' 0 0
fi
}

dialog --title 'Funções:' --menu 'Escolha uma das funções para executar:' 0 0 0 '1' 'Principal' '2' 'Secundaria' 2> $temp_file

opcao=$(cat $temp_file | tail -n 1)

if [ $opcao -eq 1 ]; then
Principal
elif [ $opcao -eq 2 ]; then
Secundaria
else
echo "Opção inválida!"
fi
#################################







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts