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