[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [shell-script] Menu em script
From: |
Reinaldo Marques de Lima |
Subject: |
RE: [shell-script] Menu em script |
Date: |
Thu, 06 Oct 2005 13:29:50 +0000 |
Cara, inves de fzr com um monte de if, tenta fazer os blocos separados em
funções, e
utilizando o case pro menuzinho....
mais ou menos assim
-----------------------------------------------------------------------------------------------------
menu() {
echo " Opções: "
echo
echo " Digite: "
echo " 1 - Para 'blablabla'"
echo " 2 - Para 'blablabla'"
echo " 3 - Para 'blablabla'"
echo " 4 - Para 'blablabla'"
echo " 5 - Para Ajuda"
echo " 6 - Para Sair"
echo
echo "Escolha uma opção: "
echo
read opcao
if [ $opcao -lt 1 ] || [ $opcao -gt 6 ]; then
echo
echo " Parametro invalido"
echo
exit
fi
funcao.opcao
}
funcao.opcao() {
case $opcao in
1) blablabla; menu; ;;
2) blablabla; menu; ;;
3) blablabla; menu; ;;
4) blablabla; ;;
5) ajuda; menu; ;;
6) sair; ;;
esac
}
nome_de_cada_opção_do_menu() {
************* o q a opção faz *****************
} # essa parte voce usa pra todas as opções do seu menu
menu # ultima instrução...que vai buscar o menu no topo do script
------------------------------------------------------------------------------------------------------------------
voce tratando direitinho os possiveis erros do usuario vai te poupar
bastante dor de cabeça beleza, espero ter ajudado
abraço
---------------------------------------------------------------------------------------------------------------------------------
Caros,
Estou tentando fazer um menu, onde uma determinada empresa vai acessar via
<br>
ssh. Criei o menu, porém ele está me apresentando falhas. Neste menu, o <br>
usuário deve escolher uma opção, que no caso vai ser numérica. <br>
Quando o usuário digita uma letra, ou um número que não encontra-se no menu,
<br>
ele está saindo do script sozinho, e quando é precionado Enter sem uma opção
<br>
ele retorna outro erro. Só para constar, quando o usuário utiliza o ssh, eu
<br>
defini o shell do usuário como o script no passwd. <br>
<br>
O código é este abaixo: <br>
<br>
while : ; <br>
do <br>
<br>
clear <br>
<br>
echo "Empresa" <br>
echo "Bem vindo" <br>
echo " " <br>
echo "Opções para manutenção em nosso sistema:" <br>
echo " " <br>
echo "Para opção 1 digite: 1" <br>
echo "Para opção 2 digite: 2" <br>
echo "Para opção 3 digite: 3" <br>
echo "Para opção 4 digite: 4" <br>
echo "Para sair: 0" <br>
echo " " <br>
<br>
read -p "Entre com a opção: " Lib <br>
if [ "$Lib" != {0-9} ]; then <br>
echo "Formato invalido!" <br>
shift <br>
fi <br>
<br>
<br>
if (( $Lib == 0 )); then <br>
echo "Obrigado por utilizar nosso sistema" <br>
echo "Até logo" <br>
sleep 4 <br>
clear <br>
break <br>
<br>
elif (( $Lib == 1 )); then <br>
clear <br>
echo "Empresa" <br>
echo " " <br>
echo "Você está em: Manutenção - Opção 1" <br>
echo " " <br>
echo "Sub Opção 1" <br>
echo "Sub Opção 2" <br>
echo "Para sair: 0" <br>
read -p "Opção: " op_sub1 <br>
if [ "$Lib" != {0-9} ]; then <br>
echo "Formato invalido!" <br>
shift <br>
fi <br>
<br>
if (( $op_sub1 == 0 )); then <br>
echo "Obrigado por utilizar nosso sistema"
<br>
echo "Até logo" <br>
sleep 4 <br>
clear <br>
break <br>
elif (( $op_sub1 == 1 )); then <br>
echo "Comando - sub-opção 1" <br>
sleep 3 <br>
shift <br>
elif (( $op_sub1 == 2 )); then <br>
echo "Comando - sub-opção 2" <br>
sleep 3 <br>
shift <br>
else <br>
echo "Opção não cadastrada." <br>
sleep 3 <br>
shift <br>
fi <br>
<br>
elif (( $Lib == 2 )); then <br>
echo "comando 2" <br>
echo "Obrigado por utilizar nosso sistema" <br>
echo "Até logo" <br>
sleep 3 <br>
shift <br>
<br>
elif (( $Lib == 3 )); then <br>
echo "comando 3" <br>
echo "Obrigado por utilizar nosso sistema" <br>
echo "Até logo" <br>
sleep 3 <br>
shift <br>
<br>
elif (( $Lib == 4 )); then <br>
echo "comando 4" <br>
echo "Obrigado por utilizar nosso sistema" <br>
echo "Até logo" <br>
sleep 3 <br>
shift <br>
<br>
else <br>
echo "Esta opção não encontra-se no sistema." <br>
echo "Favor entrar com as opções: 1-4" <br>
echo "Para sair digite: 0" <br>
sleep 3 <br>
shift <br>
fi <br>
done <br>
<br>
<br>
O que posso fazer neste código para que não ocorram mais erros? <br>
E se alguém tiver uma solução melhor q esta, agradeceria. <br>
<br>
<br>
[As partes desta mensagem que não continham texto foram removidas]<br>
<br>
</tt>
<br><br>
<tt>
---------------------------------------------------------------------<br>
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.<br>
---------------------------------------------------------------------<br>
Sair da lista: address@hidden<br>
---------------------------------------------------------------------<br>
Esta lista é moderada de acordo com o previsto em <a
href="http://www.listas-discussao.cjb.net">http://www.listas-discussao.cjb.net</a><br>
---------------------------------------------------------------------<br>
</tt>
<br><br>
<br>
<table border=0 cellspacing=0 cellpadding=2>
<tr bgcolor="#FFFFCC">
<td align=center><font size=-1 color="#003399"><b>Yahoo! Grupos, um
serviço oferecido por:</b></font></td>
</tr>
<tr bgcolor="#FFFFFF">
<td align=center width=470><table width=300 border=0 cellpadding=5
cellspacing=""><tr><td colspan=4><a
href="http://br.rd.yahoo.com/SIG=12ffhvj7b/M=371233.7216260.8122519.4826560/D=brclubs/S=2137111254:HM/Y=BR/EXP=1128556072/A=3039887/R=0/SIG=13k7voobn/*http://www.mercadolivre.com.br/jm/pms?site=324418&word=050930-header&id=2021&as_opt=http://www.mercadolivre.com.br"><img
src="http://www.mercadolivre.com/org-img/MLB/POP/2005/30_09/pop_header.gif"
width=300 height=63 alt="MercadoLivre.com - Onde você compra e vende de
tudo! Clique e Confira!" border=0></a></td></tr><tr><td width=150><a
href="http://br.rd.yahoo.com/SIG=12ffhvj7b/M=371233.7216260.8122519.4826560/D=brclubs/S=2137111254:HM/Y=BR/EXP=1128556072/A=3039887/R=1/SIG=187o0ssd8/*http://www.mercadolivre.com.br/jm/pms?site=324418&word=050930-ps2mlmp&id=2021&as_opt=/jm/search?as_categ_id=4384$$as_price_min=640$$as_price_max=1500$$as_filtro_id=MPAGO$$as_pr_categ_id=AD$$as_display_type=G$$as_order_id=MAS_OFERTADOS$$as_filtro_id2=PRECIO_FIJO"
style="font-family:Arial, Verdana, Helvetica,
sans-serif;font-size:10px;color:#000000">PlayStation 2 a partir de R$ 659!
Parcele!</a></td><td width=150><a
href="http://br.rd.yahoo.com/SIG=12ffhvj7b/M=371233.7216260.8122519.4826560/D=brclubs/S=2137111254:HM/Y=BR/EXP=1128556072/A=3039887/R=2/SIG=18h64job8/*http://www.mercadolivre.com.br/jm/ms?site=324418&word=050930-celmotcam&id=2021&as_opt=/jm/search?as_categ_id=5082$$noQCat$$as_display_type=G$$as_filtro_id=MPAGO$$as_filtro_id2=NUEVO$$as_pr_categ_id=$$as_price_min=415$$as_search_both=Y$$as_word=$$as_order_id=MAS_OFERTADOS"
style="font-family:Arial, Verdana, Helvetica,
sans-serif;font-size:10px;color:#000000">Celular Motorola com câmera a
partir de R$ 449!</a></td></tr><tr bgcolor="#E8E8E8"><td width=150><a
href="http://br.rd.yahoo.com/SIG=12ffhvj7b/M=371233.7216260.8122519.4826560/D=brclubs/S=2137111254:HM/Y=BR/EXP=1128556072/A=3039887/R=3/SIG=18nf189r2/*http://www.mercadolivre.com.br/jm/pms?site=324418&word=050930-siemens_sl65&id=2021&as_opt=/jm/search?as_word=$$as_pr_categ_id=$$as_price_min=499$$as_search_both=Y$$as_categ_id=3811$$as_display_type=G$$as_order_id=MAS_OFERTADOS$$noQCat=Y$$as_filtro_id=MPAGO$$as_filtro_id2=NUEVO"
style="font-family:Arial, Verdana, Helvetica,
sans-serif;font-size:10px;color:#000000">Siemens SL65 com câmera a partir de
R$ 730! </a></td><td width=150><a
href="http://br.rd.yahoo.com/SIG=12ffhvj7b/M=371233.7216260.8122519.4826560/D=brclubs/S=2137111254:HM/Y=BR/EXP=1128556072/A=3039887/R=4/SIG=1833fpca9/*http://www.mercadolivre.com.br/jm/pms?site=324418&word=50930-camdigmlmp&id=2021&as_opt=/jm/search?as_categ_id=1042$$as_pr_categ_id=AD$$as_filtro_id=MPAGO$$as_order_id=MAS_OFERTADOS$$as_price_min=390$$as_display_type=G$$as_price_max=1700$$as_filtro_id2=NUEVO"
style="font-family:Arial, Verdana, Helvetica,
sans-serif;font-size:10px;color:#000000">Câmeras Digitais a partir de apenas
R$ 399! Parcele!</a></td> </tr><tr><td width=150><a
href="http://br.rd.yahoo.com/SIG=12ffhvj7b/M=371233.7216260.8122519.4826560/D=brclubs/S=2137111254:HM/Y=BR/EXP=1128556072/A=3039887/R=5/SIG=18071v4b7/*http://www.mercadolivre.com.br/jm/pms?site=324418&word=050930-mp3carropioneermlmp&id=2021&as_opt=/jm/search?as_categ_id=5675$$as_pr_categ_id=AD$$as_price_min=350$$as_display_type=G$$as_order_id=MAS_OFERTADOS$$as_filtro_id=MPAGO$$as_filtro_id2=PRECIO_FIJO"
style="font-family:Arial, Verdana, Helvetica,
sans-serif;font-size:10px;color:#000000">CD Players Pioneer a partir de R$
369!</a></td><td width=150><a
href="http://br.rd.yahoo.com/SIG=12ffhvj7b/M=371233.7216260.8122519.4826560/D=brclubs/S=2137111254:HM/Y=BR/EXP=1128556072/A=3039887/R=6/SIG=16nlj1eg1/*http://www.mercadolivre.com.br/jm/pms?site=324418&word=050930--ipodmini&id=2021&as_opt=/jm/search?as_categ_id=6367$$as_display_type=G$$as_filtro_id=NUEVO$$as_filtro_id2=MPAGO$$as_price_min=735$$asorder_id=HIT_PAGE"
style="font-family:Arial, Verdana, Helvetica,
sans-serif;font-size:10px;color:#000000">MP3 Player iPod a partir de R$ 799!
Parcele!</a></td></tr></table></td>
</tr>
</table>
<br>
<hr width=500>
<b>Links do Yahoo! Grupos</b><br>
<ul>
<li>Para visitar o site do seu grupo na web, acesse:<br><a
href="http://br.groups.yahoo.com/group/shell-script/">http://br.groups.yahoo.com/group/shell-script/</a><br>
<li>Para sair deste grupo, envie um e-mail para:<br><a
href="mailto:address@hidden?subject=Unsubscribe">address@hidden</a><br>
<li>O uso que você faz do Yahoo! Grupos está sujeito aos <a
href="http://br.yahoo.com/info/utos.html">Termos do Serviço do Yahoo!</a>.
</ul>
</br>
</body></html>
<br></font></BLOCKQUOTE>
- Menu em script, Marcos Notari Junior, 2005/10/05
- Re: [shell-script] Menu em script, Fabiano Caixeta Duarte, 2005/10/05
- Re: [shell-script] Menu em script, marcio moreira, 2005/10/05
- Re: [shell-script] Menu em script, Tiago Barcellos Peczenyj, 2005/10/05
- Re: Menu em script, Leogildo, 2005/10/05
- Re: [shell-script] Menu em script, moysespr, 2005/10/05
- RE: [shell-script] Menu em script,
Reinaldo Marques de Lima <=