[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Menu em script
From: |
Tiago Barcellos Peczenyj |
Subject: |
Re: [shell-script] Menu em script |
Date: |
Thu, 6 Oct 2005 11:34:54 -0300 |
alias, por que vc informa uma opção para sair e um while true (ou
while :) para manter o menu ? seria mais logico ter uma variavel sair
sair=false
while [[ "$sair" != "true" ]]
do ...
...
0) sair=true ;;
...
done
se esta variavel for local, pode reutiliza-la em todos os sub-menus
Em 06/10/05, Reinaldo Marques de Lima<address@hidden> escreveu:
> 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>
>
>
>
>
>
> ---------------------------------------------------------------------
> 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.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
>
>
>
>
> Yahoo! Grupos, um serviço oferecido por:
>
> PlayStation 2 a partir de R$ 659! Parcele!Celular Motorola com câmera a
> partir de R$ 449!
> Siemens SL65 com câmera a partir de R$ 730! Câmeras Digitais a partir de
> apenas R$ 399! Parcele!
> CD Players Pioneer a partir de R$ 369!MP3 Player iPod a partir de R$ 799!
> Parcele!
> ________________________________
> Links do Yahoo! Grupos
>
>
> Para visitar o site do seu grupo na web, acesse:
> http://br.groups.yahoo.com/group/shell-script/
>
> Para sair deste grupo, envie um e-mail para:
> address@hidden
>
> O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do
> Yahoo!.
- 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, 2005/10/06
- Re: [shell-script] Menu em script,
Tiago Barcellos Peczenyj <=