perdão escrevi confudo no lugar de confuso.

a linha
[ "${usuario}" ] || break;

faz o segunte teste - se a variavel *não* possui conteudo, então
executa o break.

na pergunta se vc der um simples 'enter', sem nenhum valor, sai do
laço interno. uma maneira de sair da pesquisa.

On 7/24/06, Tiago Barcellos Peczenyj <[EMAIL PROTECTED]> wrote:
> olha, achei o uso que vc faz de while read um pouco confudo, de uma
> olhada nesse caso:
>
> #!/bin/bash
> while :
> do echo '###########################
> Selecione uma opcao do menu
> ###########################
>
> P) Pesquisa
> S) Sair'
>         read -p " > " OPCAO
>
>         case "${OPCAO}" in
>                 P|p) usuario=default
>                 while :
>                 do      read -p "Qual usuario pesquisar? " usuario
>                         [ "${usuario}" ] || break;
>                         echo "vc escolheu ${usuario}"
>                 done
>                 ;;
>
>                 S|s) echo "Saindo"
>                 break
>                 ;;
>
>                 *) echo "Opcao invalida"
>                 #exit 1
>                 ;;
>         esac
> done
>
> Explicação - while :   é um laço 'infinito' que vc só sai com a
> instrução break, por exemplo. no caso temos 2, um para o loop geral,
> com as opções do menu, para sair apenas com S (ou s) e outro para a
> pesquisa (o seu while read usuario parece indicar que vc quer
> pesquisar um monte de gente de uma vez só).
>
> Ainda ficou clean e funcional =) Só falta funcionar.
>
> On 7/24/06, Thiago Germano Beier <[EMAIL PROTECTED]> wrote:
> > administrando servidor
> > pessoal o script abaixo e composto por menus mas quando o faco um
> > laco dentro CASE ele fica preso no laco do CASE e nao sai mais a nao
> > ser com CTRL+C
> >
> > ## codigo ##
> >
> > #!/bin/bash
> > clear
> > # mostra opcoes
> > while
> >
> > echo ""
> > echo "###########################"
> > echo "Selecione uma opcao do menu"
> > echo "###########################"
> > echo ""
> >
> > echo "1) Opcao 1"
> > echo "2) Opcao 2"
> > echo "3) Opcao 3"
> > read OPCAO
> > do
> > # testa a valida rsposta das opcoes
> >         case $OPCAO in
> >         1)
> >         clear
> >         echo "vc escolheu1"
> >         echo "Qual usuario pesquisar?"
> >         while read usuario
> >         do
> >         echo $usuario
> >         done
> >         exit
> >         ;;
> >         2)
> >         clear
> >         echo "vc escolheu2"
> >         ;;
> >         3)
> >         clear
> >         echo "vc escolheu3"
> >         ;;
> >         *)
> >         clear
> >         echo "nenhuma opção foi escolhida"
> >         echo "saindo do script"
> >         sleep 3
> >         exit
> >         ;;
> > esac
> > done
> > exit
> >
> > pergunto:
> >
> > 1- como faco para qdo um laco nao for satisfatorio VOLTAR pro menu
> > inicial ?
> >
> >
> > []s
> >
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > 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: [EMAIL PROTECTED]
> > ---------------------------------------------------------------------
> > Esta lista é moderada de acordo com o previsto em 
> > http://www.listas-discussao.cjb.net
> > ---------------------------------------------------------------------
> > Servidor Newsgroup da lista: news.gmane.org
> > Grupo: gmane.org.user-groups.programming.shell.brazil
> >
> >
> > Links do Yahoo! Grupos
> >
> >
> >
> >
> >
> >
> >
> >
>
>
> --
> Tiago B Peczenyj
> Linux User #405772
>
> # cd /pub
> # more beer
>


-- 
Tiago B Peczenyj
Linux User #405772

# cd /pub
# more beer


---------------------------------------------------------------------
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: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

 
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:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a