•expr计算表达式的值:
•B-shell本身没有提供数学运算和字符串运算的能力,所有这些运算都是借助于命令expr完成的;
•
•expr支持算术运算(
+、
-、
*、
/),取余数(
%),以及数值比较的关系运算(
<、
<=、
=、
!=、
>=、
>);
•
expr的运算优先级和C语言一样:乘除法优先级最高,其次加减法,然后是关系运算。关系运算的结果是expr打印1 (关系成立)或者0(关系不成立);也可以使用括号。
例1:求 “a*(b+c)”
a=1
b=2
c=3
x=`expr$a \* \( $b + $c \)`
注意:在expr表达式中,变量与转义符、操作符之间用空格分隔
例2:在例1的基础上判断x是否大于20
[`expr $x \> 20` = 0 ] && echo ‘$x = ’ $x is less than 20 (&& 表示前面命令执行成功就执行后面命令; “ ||”表示前面命令执行失败就执行后面命令。)
[sample3:root]:/tmp/dd> expr 1+1
1+1
[sample3:root]:/tmp/dd> expr 1 + 1
2
[sample3:root]:/tmp/dd> expr 2 \* \( 1 + 1 \)
4