数学运算
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