次のスクリプトを使用しています
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を拡張するにはシェルを使用する必要があります(スクリプトを作成するときにリテラル文字列を整数と比較したい$
)。また、次のように引用する必要があります。temp
0
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
算術式内では拡張は((…))
必要なく、$
引用もできません。