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 <[EMAIL PROTECTED]>
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
[EMAIL PROTECTED]
[EMAIL PROTECTED]
+55 11 8173-7882
+55 11 5643-7846