[問題] shell浮點數運算問題
我用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 ] 他竟然顯示不相等
請問這是什麼原因,我可以怎麼修正
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.205.139.44
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1543848273.A.5C4.html
→
12/03 23:31,
5年前
, 1F
12/03 23:31, 1F
推
12/04 02:04,
5年前
, 2F
12/04 02:04, 2F
推
12/04 18:03,
5年前
, 3F
12/04 18:03, 3F
→
12/05 23:20,
5年前
, 4F
12/05 23:20, 4F
推
12/06 16:00,
5年前
, 5F
12/06 16:00, 5F
→
12/06 16:00,
5年前
, 6F
12/06 16:00, 6F
推
12/06 17:35,
5年前
, 7F
12/06 17:35, 7F
噓
12/06 19:41,
5年前
, 8F
12/06 19:41, 8F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 3 篇):