構文エラー:「整数式が必要です」

構文エラー:「整数式が必要です」

次のスクリプトを使用しています

x=5.44
p=0
temp=$(printf "%.*f\n" $p $x)
echo $temp
if [ temp -gt 0 ]
  then
  echo "inside"
fi

私の出力はエラーの下にあります。

5
./temp.sh: line 6: [: temp: integer expression expected

ベストアンサー1

tempを拡張するにはシェルを使用する必要があります(スクリプトを作成するときにリテラル文字列を整数と比較したい$)。また、次のように引用する必要があります。temp0

x=5.44
p=0
temp=$(printf "%.*f\n" $p $x)
echo "$temp"
if [ "$temp" -gt 0 ]
then
  echo "inside"
fi

Bashを使用する場合は、次のようなBash算術式を使用する方が良い方法です。

x=5.44
p=0
temp=$(printf "%.*f\n" $p $x)
echo "$temp"
if ((temp>0)); then
  echo "inside"
fi

算術式内では拡張は((…))必要なく、$引用もできません。

おすすめ記事