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

如何在bash脚本中使用带小数的if语句进行计算,bash,decimal,Bash,Decimal,我试图为我的睡眠计时器设置一个速度,但我认为我遇到了问题,因为let和if语句中的小数。如何在bash脚本中使用小数?请举例说明。提前感谢bash仅限于整数运算 如果您有GNU工具,如Linux,则可以使用bc进行浮点比较,如下所示: #SET INITIAL SPEED initialspeed() { wpm=$2 #CHECKS IF SPEED WAS GIVEN if [ -z "$wpm" ] then let wpm=0.6 sleep $wpm #CHECK IF SPE

我试图为我的睡眠计时器设置一个速度,但我认为我遇到了问题,因为let和if语句中的小数。如何在bash脚本中使用小数?请举例说明。提前感谢

bash仅限于整数运算

如果您有GNU工具,如Linux,则可以使用bc进行浮点比较,如下所示:

 #SET INITIAL SPEED
initialspeed() {

wpm=$2

#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
}
对于非GNU 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

在本机bash中不可能使用bc而不是headi。我明白这一点,但您能举个例子说明如何使用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