'expressão inteira esperada' [duplicado]

0

Encontrei o erro integer expression expected no seguinte código:

    #! /bin/bash
    # test integer: evaluate the value of integer
    int=-5
    if [ -z "$int" ]; then
        echo 'int is empty.' >&2
    fi

    if [ "$int" -eq 0 ]; then
        echo "int is zero"
    else
        if [ '$int' -lt 0 ]; then
            echo "int is negative."
        else
            echo 'int is positive.'
        fi
        if [ $((int % 2)) -eq 0 ]; then
            echo 'int is even.'
        else
            echo 'int is odd.'
        fi
    fi

Execute e obtenha o relatório de erros

    $ bash test_integer.sh
    test_integer.sh: line 14: [: $int: integer expression expected
    int is positive.
    int is odd.

Eu verifiquei várias vezes, mas não consegui localizar o erro,
que parecem linha-a-linha comform para o livro

Qual é o problema com o meu código?

    
por JawSaw 02.04.2018 / 17:09

1 resposta

4

'$int' é um erro de citação que você teria visto facilmente se tivesse executado o script

bash -vx schript.sh

Não há expansão entre aspas simples. Você precisa de:

if [ "$int" -lt 0 ]
    
por 02.04.2018 / 17:15

Tags