shell比較浮點數和整數

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

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

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

直接會拋出以下異常:spa

line 3: [: 1.1: integer expression expected

正確的寫法以下:code

if [ `echo "1.1 > 1" | bc` -eq 1 ];then
    echo "OK"
fi
相關文章
相關標籤/搜索