我用unix 系统
写sh时,遇到了一个bug ,就是浮点数无法运算
我使用ntpdate去校正时间, 并且记录校正了多少时间
例如:需要校正的时间是 0.000304 s
我写
ntpdate -p 10.37.82.23 > time.txt
NTP= grep delay time.txt | awk ' ' {print $6}
# $NTP will show 类似 0.000304
if [ $NTP -le 0.100001 ];then
ntpdate -u 10.37.82.23
fi
# 如果NTP server 连线异常, $NTP will show 0.000000
if [ $NTP -eq 0.000000 ];then
echo "NTP server not connect"
fi
上面第一个if 会 不成立 , 可能类似浮点数运算, 他以为两个都是0
第二个if 也会显示错误, [0.000000 -eq 0.000000 ] 他竟然显示不相等
请问这是什么原因,我可以怎么修正