+ Responder ao Tópico



  1. #1

    Padrão Erro de syntax (loop for)

    Cara tentei criar um script aqui porem está dando uma mensagem de erro de syntax, poderiam me ajudar pois não sem onde está o erro.
    Código :
    #!/bin/bash
     
    for ((I=0,I<20,I++))
    do
            sleep 5
            TESTE=$(grep 'Business Logic Layer' nohupbll)
     
            if [ -n $TESTE ]; then
                    ACHOU="sim"
                    I=20
            else
                    ACHOU="nao"
            fi
    done
    if ["$ACHOU" = "sim"]; then
            echo "|=============================|
            echo "|Serviço iniciado com Sucesso.|"
            echo "|
    else
            echo "|+*=======================*|"
            echo "|                         |"
            echo "|        ATENÇÃO          |"
            echo "|Falha ao iniciar Serviço.|"
            echo "|                         |"
            echo "|*=======================*|"
    fi
    echo ""
    echo ""
    echo "Pressione uma tecla para retornar ao menu..."
    read
    Código HTML:
    ~
    "teste1" 31 lines, 702 characters
    ppgdev01:/pmsbll00/teste_integrado>./teste1
    ./teste1: line 3: syntax error: arithmetic expression required
    ./teste1: line 3: syntax error: `((I=0,I<20,I++))'
    ./teste1: line 19: syntax error near unexpected token `else'
    ./teste1: line 19: `else'

  2. #2

    Padrão

    Tenta assim:

    Código :
    for n in $(seq 0 19)

    Teria o mesmo efeito mas é mais "elegante".

    Até mais...

  3. #3

    Padrão

    Cara obrigado, mas resolvi o erro.. usei o until, ao invés de forr


    Código :
    I=20
    until [ $I -le 0 ] ; do
            TESTE=$(grep 'Business Logic Layer' nohupbll)
            sleep 5
            if [ -n $TESTE ]; then
                    ACHOU="sim"
                    I=0
            else
                    ACHOU="nao"
                    I=$[$I-1]
    .
    .
    .

  4. #4

    Padrão

    No laço for, você está usando virgulas. O correto seria ponto e vrigula:

    Código :
    for (( i = 0 ; i < 20 ; i++ ))
    do
        # some code
    done