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