1. 程式人生 > >shell比較浮點數和整數

shell比較浮點數和整數

ssi 工作 示例 一個 style 朋友 shell code nbsp

  今天有一個朋友忽然問我在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

shell比較浮點數和整數