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