+ Responder ao Tópico



  1. #1

    Padrão shell script - condição para voltar ao inicio do script

    Tenho um script que realiza determinada tarefa.
    Ao final da execução do script eu gostaria de colocar uma pergunta mostrando ao usuario se ele gostaria de sair do script ou repetir a operação.

    A minha duvida é:
    Como faço para caso a resposta seja sim, o script volte a ser executado desde o começo?

  2. #2

    Padrão

    as palavras exatas, não sei, mas no chute até que dá:

    criar uma função
    atribuir 'Ss' a uma variável
    fazer um laço while variável 'Ss'

    ou seja

    var_verificacao="S"

    function qualquer_coisa()

    case var_verificação==[Ss]; do

    qualquer_coisa
    # fazer aqui rotina para (re)atribuir valor à var_verificação

    var_verificacao="" # vazia"

    read var_verificacao # atribui valor digitado pelo usuário

    esac # se não for [Ss], adeus

    bem.. se EU precisasse fazer isso, faria com toda a sintaxe própria. Mas a lógica é exatamente essa, deixo a sintaxe pra vc.

    divirta-se.




  3. #3

    Padrão

    Citação Postado originalmente por Skorpyon Ver Post
    Tenho um script que realiza determinada tarefa.
    Ao final da execução do script eu gostaria de colocar uma pergunta mostrando ao usuario se ele gostaria de sair do script ou repetir a operação.

    A minha duvida é:
    Como faço para caso a resposta seja sim, o script volte a ser executado desde o começo?
    Opa, vc pode fazer um loop infinito, use o delimitador ":" do while, ex:


    while :
    do

    echo
    echo "1.: Opcao 1"
    echo "2.: Ocao 2"
    echo "3.: Sair"
    echo
    echo
    echo -n "Digite a opcao desejada: "
    read opcao
    case $opcao in
    1) echo vc teclou a opção 1 ;;
    2) echo vc teclou a opção 2;;
    3) exit ;;
    *) echo "Opção desconhecida." ; echo ;;
    esac
    done

    : mantem vc preso no menu, só sai se teclar "sair"

    Falow

  4. #4

    Padrão

    Citação Postado originalmente por mvzeppelin Ver Post
    Opa, vc pode fazer um loop infinito, use o delimitador ":" do while, ex:


    while :
    do

    echo
    echo "1.: Opcao 1"
    echo "2.: Ocao 2"
    echo "3.: Sair"
    echo
    echo
    echo -n "Digite a opcao desejada: "
    read opcao
    case $opcao in
    1) echo vc teclou a opção 1 ;;
    2) echo vc teclou a opção 2;;
    3) exit ;;
    *) echo "Opção desconhecida." ; echo ;;
    esac
    done

    : mantem vc preso no menu, só sai se teclar "sair"

    Falow
    Testei isso.
    Funcionou beleza =)

    vlw