shell-script-pt
[Top][All Lists]
Advanced

[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: Wed, 5 Oct 2005 21:03:58 -0300

Ao inves de tanto if, que tal usar um case ?

Fica mais lógico. E eu aglutinaria as opções em sub funções.

funcao1(){
   echo "1"
}

funcao2(){
   echo "2"
}

read -p "opcao" Lib

case $Lib in
1) funcao1 ;;
2) funcao2 ;;
*) echo "opcao errada" ;;
esac

Em 05/10/05, Marcos Notari Junior<address@hidden> escreveu:
>  Caros,
>
>  Estou tentando fazer um menu, onde uma determinada empresa vai acessar via
>  ssh. Criei o menu, porém ele está me apresentando falhas. Neste menu, o
>  usuário deve escolher uma opção, que no caso vai ser numérica.
>  Quando o usuário digita uma letra, ou um número que não encontra-se no
> menu,
>  ele está saindo do script sozinho, e quando é precionado Enter sem uma
> opção
>  ele retorna outro erro. Só para constar, quando o usuário utiliza o ssh, eu
>  defini o shell do usuário como o script no passwd.
>
>  O código é este abaixo:
>
>  while : ;
>  do
>
>  clear
>
>  echo "Empresa"
>  echo "Bem vindo"
>  echo " "
>  echo "Opções para manutenção em nosso sistema:"
>  echo " "
>  echo "Para opção 1 digite: 1"
>  echo "Para opção 2 digite: 2"
>  echo "Para opção 3 digite: 3"
>  echo "Para opção 4 digite: 4"
>  echo "Para sair: 0"
>  echo " "
>
>  read -p "Entre com a opção: " Lib
>  if [ "$Lib" != {0-9} ]; then
>          echo "Formato invalido!"
>          shift
>  fi
>
>
>  if (( $Lib == 0 )); then
>          echo "Obrigado por utilizar nosso sistema"
>          echo "Até logo"
>          sleep 4
>          clear
>          break
>
>  elif (( $Lib == 1 )); then
>          clear
>          echo "Empresa"
>          echo " "
>          echo "Você está em: Manutenção - Opção 1"
>          echo " "
>          echo "Sub Opção 1"
>          echo "Sub Opção 2"
>          echo "Para sair: 0"
>          read -p "Opção: " op_sub1
>          if [ "$Lib" != {0-9} ]; then
>                  echo "Formato invalido!"
>                  shift
>          fi
>
>                  if (( $op_sub1 == 0 )); then
>                          echo "Obrigado por utilizar nosso sistema"
>                          echo "Até logo"
>                          sleep 4
>                          clear
>                          break
>                  elif (( $op_sub1 == 1 )); then
>                          echo "Comando - sub-opção 1"
>                          sleep 3
>                          shift
>                  elif (( $op_sub1 == 2 )); then
>                          echo "Comando - sub-opção 2"
>                          sleep 3
>                          shift
>                  else
>                          echo "Opção não cadastrada."
>                          sleep 3
>                          shift
>                  fi
>
>  elif (( $Lib == 2 )); then
>          echo "comando 2"
>          echo "Obrigado por utilizar nosso sistema"
>          echo "Até logo"
>          sleep 3
>          shift
>
>  elif (( $Lib == 3 )); then
>          echo "comando 3"
>          echo "Obrigado por utilizar nosso sistema"
>          echo "Até logo"
>          sleep 3
>          shift
>
>  elif (( $Lib == 4 )); then
>          echo "comando 4"
>          echo "Obrigado por utilizar nosso sistema"
>          echo "Até logo"
>          sleep 3
>          shift
>
>  else
>          echo "Esta opção não encontra-se no sistema."
>          echo "Favor entrar com as opções: 1-4"
>          echo "Para sair digite: 0"
>          sleep 3
>          shift
>  fi
>  done
>
>
>  O que posso fazer neste código para que não ocorram mais erros?
>  E se alguém tiver uma solução melhor q esta, agradeceria.
>
>
>  [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ---------------------------------------------------------------------
>  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!.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]