shell浮點數運算問題 - Linux
By Doris
at 2018-12-07T00:05
at 2018-12-07T00:05
Table of Contents
※ 引述《zchien (小建)》之銘言:
: 我用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 ] 他竟然顯示不相等
: 請問這是什麼原因,我可以怎麼修正
我找到bc的用法了,但是會有問題
http://0rz.tw/FlVdf
ntpdate -q 10.37.82.23 > time.txt
# $NTP will show 類似 0.000304
NTP=$(grep delay time.txt | awk '{print $6}')
if [ `echo "$NTP"|bc` -ge `echo 0.100001 |bc` ] ; then
echo "NTP > 0.100001"
if
我使用sh -vx script 去看它顯示狀態
這會顯示
+[ 0.000304 -ge 0.100001 ]
+echo NTP > 0.100001
echo NTP > 0.100001
而且-ge 不論改成 -eq , -le 都是一樣的結果
請問這是什麼原因
用awk 也不行
--
: 我用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 ] 他竟然顯示不相等
: 請問這是什麼原因,我可以怎麼修正
我找到bc的用法了,但是會有問題
http://0rz.tw/FlVdf
ntpdate -q 10.37.82.23 > time.txt
# $NTP will show 類似 0.000304
NTP=$(grep delay time.txt | awk '{print $6}')
if [ `echo "$NTP"|bc` -ge `echo 0.100001 |bc` ] ; then
echo "NTP > 0.100001"
if
我使用sh -vx script 去看它顯示狀態
這會顯示
+[ 0.000304 -ge 0.100001 ]
+echo NTP > 0.100001
echo NTP > 0.100001
而且-ge 不論改成 -eq , -le 都是一樣的結果
請問這是什麼原因
用awk 也不行
--
Tags:
Linux
All Comments
By Hazel
at 2018-12-09T16:53
at 2018-12-09T16:53
By Bethany
at 2018-12-11T14:47
at 2018-12-11T14:47
By Agatha
at 2018-12-13T22:58
at 2018-12-13T22:58
By Doris
at 2018-12-15T04:11
at 2018-12-15T04:11
By Ula
at 2018-12-18T18:16
at 2018-12-18T18:16
By Emily
at 2018-12-21T04:46
at 2018-12-21T04:46
By Annie
at 2018-12-24T10:22
at 2018-12-24T10:22
By Ida
at 2018-12-28T02:08
at 2018-12-28T02:08
By Audriana
at 2019-01-01T10:13
at 2019-01-01T10:13
By Cara
at 2019-01-03T22:19
at 2019-01-03T22:19
By Ina
at 2019-01-05T06:33
at 2019-01-05T06:33
By Odelette
at 2019-01-08T16:30
at 2019-01-08T16:30
By Regina
at 2019-01-11T13:26
at 2019-01-11T13:26
Related Posts
AMD主機沒辦法成功安裝ubuntu
By Barb Cronin
at 2018-12-06T23:05
at 2018-12-06T23:05
python 虛擬環境 排程問題
By Zenobia
at 2018-12-05T00:01
at 2018-12-05T00:01
shell浮點數運算問題
By Hedda
at 2018-12-04T23:26
at 2018-12-04T23:26
設定4g 網卡
By Jacky
at 2018-12-04T14:21
at 2018-12-04T14:21
shell浮點數運算問題
By Margaret
at 2018-12-03T22:44
at 2018-12-03T22:44