我正在使用下面的脚本
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
您需要使用$
shell 来扩展 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
在算术表达式内部,((…))
您不需要$
for 扩展,也不能引用。