写个调度器需要对小数之间进行大小比较,经查询shell中 可以用 bc 对小数进行运算 example: #echo 5.5+1.1 | bc 6.6 具体情况#man bc 然而对小数进行比较的相关方法有几个: 1. 自己的解决方法,判断小数点后最多有几位数(N),然后对将要比较的两个数值进行 乘与10的N次方 也就是将小数点去掉来进行比较(小数点后位数多的直接去掉小数点,少的用0补齐) example:
6.6 x 10 >5.5x10
6.6666 x 10000 > 5.5 x10000 提示:使用 num=6.6666;echo $num | awk 'BEGIN{FS="."}{print length($2)}'判断小数点后的位数 当然,如果你确定小数点后最多肯定不会超过4位你可直接去掉10000,类推。。 2. 直接用awk awk -v num1=6.6 -v num2=5.5 'BEGIN{print(num1>num2)?"0":"1"}' 如果num1>num2打印输出0,否则输出1 3.expr 比较妙的方法 expr $a \> $b 返回1表示$a>$b, 0表示$a<$b # a=6.6 b=5.5;expr $a \> $b 1 4. br 用br其实也是可以实现 echo "6.6>5.5" |bc 1 echo "5.5>6.6" | bc 0 (责任编辑:IT) |