`需要整数表达式`

`需要整数表达式`

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 ]

相关内容