shell 只能处理整数的比较和运算,对于浮点数比较和运算,需要使用bc工具。
1.bc简介
bc 支持关系表达式。如果关系为假,则结果为0;如果关系为真,则结果为1。
POSIX bc 要求仅在 if、while 和 for 语句中使用关系表达式,并且只能在其中进行一项关系测试。
expr1 < expr2
The result is 1 if expr1 is strictly less than expr2.
expr1 <= expr2
The result is 1 if expr1 is less than or equal to expr2.
expr1 > expr2
The result is 1 if expr1 is strictly greater than expr2.
expr1 >= expr2
The result is 1 if expr1 is greater than or equal to expr2.
expr1 == expr2
The result is 1 if expr1 is equal to expr2.
expr1 != expr2
The result is 1 if expr1 is not equal to expr2.
布尔运算也是合法的(POSIX bc 没有布尔运算)。所有布尔运算的结果都是 0 和 1(对于 false 和 true),就像在关系表达式中一样。
!expr The result is 1 if expr is 0.
expr && expr
The result is 1 if both expressions are non-zero.
expr || expr
The result is 1 if either expression is non-zero.