`정수 표현식이 필요합니다`

`정수 표현식이 필요합니다`

integer expression expected다음 코드에서 오류가 발생합니다 .

    #! /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

실행하고 오류 보고서 받기

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

여러 번 확인했지만 오류를 찾을 수 없었습니다.
책에 나와 있는 내용과 일치하는 것 같습니다.

내 코드에 무슨 문제가 있나요?

답변1

'$int'는 인용 오류입니다. 스크립트를 실행하면 쉽게 확인할 수 있습니다.

bash -vx schript.sh

작은따옴표 안에는 확장이 없습니다. 다음을 수행해야 합니다.

if [ "$int" -lt 0 ]

관련 정보