数学运算
expr命令
(1)对数字的基本计算,做比较时,输出结果假为0,1为真;特殊符号用转义符
[root@xuegod63 ~]# expr 2 \> 5
0
[root@xuegod63 ~]# expr 6 \> 5
1
[root@xuegod63 ~]# expr 3 * 5
expr: 语法错误
[root@xuegod63 ~]# expr 3 \* 5
15
[root@xuegod63 ~]# expr 3 \+ 5
8
(2)对字符串的处理
[root@xuegod63 ~]# expr length "ni hao"
6
[root@xuegod63 ~]# expr substr "ni hao" 2 4 #从第2个开始,截取4个字符出来
i ha
19.3.2 使用$(( ))
格式:$((表达式1,表达2))
特点:
1、在双括号结构中,所有表达式可以像c语言一样,如:a++,b--等。a++ 等价于 a=a+1
2、在双括号结构中,所有变量可以不加入:“$”符号前缀。
3、双括号可以进行逻辑运算,四则运算
4、双括号结构 扩展了for,while,if条件测试运算
5、支持多个表达式运算,各个表达式之间用“,”分开
常用的算数运算符
| 
 运算符  | 
 意义  | 
| 
 ++ --  | 
 递增及递减,可前置也可以后置  | 
| 
 + - ! ~  | 
 一元运算的正负号 逻辑与取反  | 
| 
 + - * / %  | 
 加减乘除与余数  | 
| 
 < <= > >=  | 
 比较大小符号  | 
| 
 == !=  | 
 相等 不相等  | 
| 
 >> <<  | 
 向左位移 向右位移  | 
| 
 & ^ |  | 
 位的与 位的异或 位的或  | 
| 
 && ||  | 
 逻辑与 逻辑或  | 
| 
 ? :  | 
 条件判断  | 
例1:
[root@xuegod63 opt]# b=$((1+2))
[root@xuegod63 opt]# echo $b
3
[root@xuegod63 opt]# echo $((2*3))
6
例2:递增和递减
[root@xuegod63 opt]# echo $((b++))
4
[root@xuegod63 opt]# echo $((++b))
6
说明: a++或a--为先赋值再+1或减1 ; ++a或--a为先加1或减1,然后再进行赋值
例3:
求1到100的和
[root@xuegod63 opt]# echo $((100*(1+100)/2))
5050
