+ Responder ao Tópico



  1. #1
    thiagog
    Visitante

    Padrão script BASH

    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

  2. #2

    Padrão Re: script BASH

    Seu laço tá errado. Geralmente pra esse tipo de coisa a gente usa do... while ao invés de while.


    Abraços.

  3. #3

    Padrão Re: script BASH

    Ve se isso te ajuda...
    Vai perceber que no final eu tenho um else, ou seja, se a opcao nao for valida vai cair nele.

    clear
    echo "gs 0.2b"
    echo
    echo
    echo "[1] Soluções completas"
    echo "[2] Serviços separados"
    echo "[3] Sair"
    echo
    echo
    echo -n "Opção: [3] "
    read confirma

    if test "$confirma" = ""; then
    echo
    echo Bye!
    echo
    exit
    fi

    if [ $confirma = 1 ]; then
    /usr/src/install/completos
    exit
    fi

    if [ $confirma = 2 ]; then
    /usr/src/install/separados
    exit
    fi

    if [ $separados = 3 ]; then
    echo
    echo Bye!
    echo
    else
    /usr/src/install/menu
    exit
    fi

  4. #4
    thiagog
    Visitante

    Padrão Re: script BASH

    muito obrigado funcionou