「整数式が必要です」

「整数式が必要です」

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 ]

関連情報