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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Script de menu nao chama a funcao menu


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Script de menu nao chama a funcao menu
Date: Wed, 4 Apr 2007 21:32:15 -0300

André,

Ao inves de fazer tantas chamadas da função menu, experimente usar o comando
select junto de um case

PS3="digite a sua opcao "
select O in "cadastrar usuario" remover listar ;
     do case "$O" in
          cadastrar*) alguma coisa ;;
          remover)  outra coisa ;;
          listar) e assim por diante ;;
     esac
done

gerará algo como:
1) cadastrar usuario
2) remover
3) listar
digite a sua opcao:

Vantagens? Terás menos codigo pra depurar e fica mais facil adicionar novas
funcionalidades.

Sem falar que no select, se vc digitar uma opção inexistente ele irá
'perguntar de novo' ;-)

Abraços T.

On 4/4/07, Christian Andreas Miniero Casza <address@hidden> wrote:
>
>   André,
>
> crie um "while", por exemplo "while [ $OPC -ne 6 ]; do ...; done", e chame
>
> a função MENU, seguida do "read" e do "case" dentro dele. Assim, só sairá
> do laço caso a opção seja sair, nesse caso 6.
>
>
> On Wed, 04 Apr 2007 20:26:00 -0300, André Miranda 
> <address@hidden<andremrnd%40gmail.com>>
>
> wrote:
>
> > Senhores,
> >
> > tenho um script que nao executa a funcao menu dentro de outra funcao,
> > quando chamo uma opcao ele devolve as informacoes e sai do sistema. Eu
> > gostaria que ele retorna-se para o menu principal, faço isso com o
> > case, mas gostaria que funcionasse tambem com uma função. Segue anexo
> > o script:
> >
> > #!/bin/bash
> > # Criando o menu:
> > MENU()
> > {
> > echo "O que voce deseja fazer?"
> > echo "Escolha um numero:"
> > echo
> >
> > echo "1. Cadastrar Usuario"
> > echo "2. Remover Usuario"
> > echo "3. Listar Usuarios"
> > echo "4. Listar Grupos"
> > echo "5. Conexoes Ativas"
> > echo "6. Sair"
> > echo
> > }
> >
> > # Executando o menu:
> >
> > MENU
> >
> > # Criando as funcoes
> >
> > SAIR()
> > {
> > clear
> > echo
> > echo
> > echo '+ ----------------------------------------------------------
> > + '
> > echo '| "Ninguem e insubstituivel, porem, |
> > '
> > echo '| ninguem deve ser tratado como se fosse descartavel." |
> > '
> > echo '| |
> > '
> > echo '+ ----------------------------------------------------------
> > + '
> > echo
> > echo
> > exit
> > }
> > CADASTRO()
> > {
> > echo
> > echo 'Digite o nome: '
> > read NOME
> > useradd $NOME
> > echo "$NOME cadastrado com sucesso"
> > sleep 3
> > MENU
> > }
> >
> > DELETAR()
> > {
> > echo "Digite o nome do usuario a deletar: "
> > read NOME
> > userdel -r $NOME
> > sleep 2
> > echo "Usuario removido com sucesso"
> > sleep 3
> > MENU
> > }
> >
> > LUSU()
> > {
> > echo "Listando os usuarios cadastrados: "
> > cat /etc/passwd | cut -d: -f1 | less
> > echo "Quantidade de Usuarios cadastrados: `cat /etc/passwd | cut -d:
> > -f1 | wc -l`"
> > MENU
> > }
> > LGRP()
> > {
> > echo "Listando os grupos cadastrados: "
> > cat /etc/group
> > sleep 2
> > MENU
> > }
> >
> > CONEXOES()
> > {
> > echo "Conexoes ativas ..."
> > netstat -nat
> > sleep 3
> > MENU
> > }
> >
> > # Pegando a resposta do MENU e fazendo um case:
> > read OPC
> >
> > case $OPC in
> >
> > 1) CADASTRO;;
> > 2) DELETAR;;
> > 3) LUSU;;
> > 4) LGRP;;
> > 5) CONEXOES;;
> > 6) SAIR;;
> > *) echo "opçao invalida"
> > esac
>
> --
> Christian Andreas Miniero Casza
> Administrador de Sistemas
> address@hidden <miniero%40aunit.com.br>
> address@hidden <xpto%40aunit.com.br>
> +55 11 8173-7882
> +55 11 5643-7846
>
>  
>



-- 
Tiago B Peczenyj
Linux User #405772

# cd /pub
# more beer


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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