语法错误:“需要整数表达式”

语法错误:“需要整数表达式”

我正在使用下面的脚本

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 扩展,也不能引用。

相关内容