shell支持各种算数运算,可以使用$((表达式))、$[表达式]、let表达式进行整数的算数运算,这些命令不能计算小数,但是可以用bc进行计算小数
1.常用运算符号
运算符号 | 含义描述 |
---|---|
++ | 自加1 |
– | 自减1 |
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
** | 求幂 |
% | 取余 |
+= | 自加任意数 |
-= | 自减任意数 |
*= | 自乘任意数 |
/= | 自除任意数 |
%= | 对任意数取余 |
&& | 逻辑与 |
|| | 逻辑或 |
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
表达式?表达式:表达式 | 根据表达式的结果,返回特定的值 |
2.通过 ( ( ) ) 和 (())和 (())和[]运算演示实际运算效果
[root@server76 ~]# echo $((2+4))
6
[root@server76 ~]# echo $((2-4))
-2
[root@server76 ~]# echo $((2*4))
8
[root@server76 ~]# echo $((2**4)) #2的4次幂
16
[root@server76 ~]# echo $((10%3)) #10除以3返回余数
1
[root@server76 ~]# x=2
[root@server76 ~]# echo $((x+=2)) #x=x+2 (x=2+2)
4
[root@server76 ~]# echo $((x*=3)) #x=xX3 (x=4X3)
12
[root@server76 ~]# echo $((x%=2)) #x=x%2 (x=8%2)
0
[root@server76 ~]# echo $((3>2&&5>3)) #仅当两边的表达式都为真时,返回1
1
[root@server76 ~]# echo $((3>2&&5>9)) #当两边的表达式有一个假时,返回0
0
[root@server76 ~]# echo $((1>2||5>8)) #两边表达式都为假时,返回0
0
[root@server76 ~]# echo $((1>2||5>3)) #逻辑或,有一个为真时,返回1
1
###############################################################
[root@server76 ~]# x=3;y=5
[root@server76 ~]# echo $[x>y?2:3] #成功返回2,失败返回3
3
[root@server76 ~]# echo $[y>x?2:3] #同上
2
[root@server76 ~]# echo $[y>x?2+2:3*5]
4
[root@server76 ~]# echo $[x>y?2+2:3*5]
15
3.++
、--
、x++
、--x
区别
x++
是先调用x在对x自加1
++x
是先对x自加1在调用x
[root@server76 ~]# x=1 #变量赋值
[root@server76 ~]# echo $[x++] #先调用x,屏幕显示1,再对x自加1
1
[root@server76 ~]# echo $x #此时x的值为2
2
###############################################################
[root@server76 ~]# x=1 #变量赋值
[root@server76 ~]# echo $[++x] #先自加1,屏幕显示2,再调用2
2
[root@server76 ~]# echo $x
2