如何在 bash 脚本中使用带小数的 if 语句进行计算

How to make calculations in if statement with decimals in bash script

 #SET INITIAL SPEED
initialspeed() {

wpm=

#CHECKS IF SPEED WAS GIVEN
if [ -z "$wpm" ]
then
let wpm=0.6
sleep $wpm

#CHECK IF SPEED IS VALID
elif [ $wpm > 0.6 ]
then
echo Error speed is less than 100 wpm
exit 3
elif [ $wpm < 0.06 ]
then
echo Error speed is more than 1000 wpm
exit 3
else
sleep $wpm
fi
}

我正在尝试为我的睡眠计时器设置一个速度,但我认为我 运行 遇到了问题,因为 letif statements 中的小数点。如何在 bash 脚本中使用小数?示例将不胜感激。提前谢谢你

bash 仅限于整数运算。

如果你有GNU工具(比如Linux),浮点比较可以用bc完成,如下:

if echo "$wpm > 0.6" | bc -l | grep -q 1
then
    echo speed is greater than 0.6
else
    echo speed is less than or equal to 0.6
fi

对于非 GNU bc,可以使用稍长的语句来完成相同的操作:

if echo "if ($wpm > 0.6) print 1 else print 0 " | bc -l | grep -q 1
then
    echo speed is greater than 0.6
else
    echo speed is less than or equal to 0.6
fi