+ Responder ao Tópico



  1. #1

    Padrão Help com script if then else

    Olá

    Hey estou estudando uma pouco de shell script na parte de condição, e não tenho muita experiência com essa linguagem, abaixo fiz pequeno script que tem três, o problema é nenhuma dfas minha condições não funciona.

    #!/bin/bash -x

    echo -n "Entre com valor"
    read valor

    echo " valor e $valor"
    if ($valor -gt 58)
    then
    echo "valor maior que 5"
    #else
    elif ($valor -eq 5)
    echo "valor igual que 5"
    else
    echo "valor e menor que 5"
    fi
    #exit 0

    Agluém aqui pode me dar uma ajuda ?

    Obrigado ai pessoal, se achar a resposta post neste forum.

  2. #2

    Talking

    Código :
     #!/bin/bash -x
     
    echo -n  "Entre com valor"
    read valor
     
    echo " valor e $valor"
    if  ("$valor" -gt 58)
    then
            echo "valor maior que 5"
    #else
            elif ("$valor" -eq 5)
                    echo "valor igual que 5"
    else
            echo "valor e menor que 5"
    fi
    #exit 0

    Faltava as aspas duplas dentro da condição! xD

  3. #3

    Padrão Tem erros ai....

    Ola, o correto seria:

    Código :
    #!/bin/sh
    echo -n  "Entre com valor: "
    read valor
    echo "valor e $valor"
    echo ""
    if [ $valor -gt 5 ]; then
    echo "Valor maior que 5"
    elif [ $valor = 5 ]; then
    echo "Valor igual a 5"
    else
    echo "Valor menor que 5"
    fi

  4. #4

    Padrão

    Olá

    Obrigado pelas respostas, fiz as alterações no script e o problema persiste
    O script continua não fazendo validação da condição do maior valor e do valor igual.

    #!/bin/sh

    echo -n "Entre com valor"
    read valor
    echo -n "Valor é $valor"
    echo ""
    if [$valor -gt 5]; then
    echo "valor maior que 5"
    elif [$valor -eq 5]; then
    echo "valor igual que 5"
    else
    echo "valor e menor que 5"
    fi

    Saída do programa

    Entre com valor23
    Valor é 23
    ./te.sh: line 7: [23: command not found
    ./te.sh: line 9: [23: command not found
    valor e menor que 5

  5. #5

    Padrão

    o script esta correto, se vc tivesse digitado identico como o "tianguapontocom" escreveu daria certo.

    vc deve deixar um espaco antes e depois dos colchetes.

    por isso o erro.. ele esta interpretando [$valor como [23.

    Citação Postado originalmente por aspenbr Ver Post

    if [$valor -gt 5]; then

    ./te.sh: line 7: [23: command not found

  6. #6

    Padrão

    Olá Neo e pessoal todo !!

    É realmente é problema de espaço, não tinha percebido que pequeno espaço fizesse tanta diferença, o script deu certo isso vai me ajudar muito a resolver alguns problemas.

    Muito Obrigado