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 ]