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


---------------------------------------------------------------------
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