shell比較浮點數和整數


  今天有一個朋友忽然問我在shell中,如何比較浮點數和整數,倒是把我問的一愣,在工作中確實沒有遇到這個場景。我們也知道,在shell中數字的計算通常都會轉換成整數,比如說1.1和1會被認為是一樣的。這么一來,我們就不能直接通過gt或者lt等方式來進行比較。雖然沒遇到過,但我們也知道,這個比較肯定也不會很難。簡單的記錄下以作備用。

下面是一個常規寫法的示例:

if [ 1.1 -gt 1 ];then
  echo "OK"
fi

直接會拋出如下異常:

line 3: [: 1.1: integer expression expected

正確的寫法如下:

if [ `echo "1.1 > 1" | bc` -eq 1 ];then
    echo "OK"
fi

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM