Shell 必知必会 | 三、Shell 算术运算符
目录
Shell 在使用的过程中经常需要用到算术运算符,属于比较简单的一块,主要是记住运算方法,下面结合实例来说明下。
一、算术运算符
1.1 运算符
运算符 | 含义 |
---|---|
+ | 加法运算符 |
- | 减法运算符 |
* | 乘法运算符 |
/ | 除法运算符 |
% | 取余运算符 |
= | 赋值运算符 |
== | 判断相等运算符 |
!= | 判断不等于运算符 |
1.2 优先级
优先级 | 说明 |
---|---|
* 、/、% | 乘、除、取余 |
+、- | 加、减 |
==、!= | 相等、不等 |
= | 赋值 |
1.3 运算方法
默认情况下 Shell 中的运算都是看作字符串在操作,不会直接进行算术运算,但是,算术运算也有很多方法,这里介绍几种常用的方法,其中 a = 11:
1.3.1 expr 算术表达式
使用 expr 进行算术运算需要注意两个问题:
(1)运算符之间要有空格,例如:expr<空格>变量<空格>运算符,如下所示:
-
[root@localhost ~]# expr 2 + 3
-
5
-
[root@localhost ~]# expr2 + 3
-
bash: expr2: 未找到命令...
-
相似命令是: 'expr'
-
[root@localhost ~]# expr 2+3
-
2+3
-
[root@localhost ~]# expr 2+ 3
-
expr: 语法错误
-
[root@localhost ~]#
在上述计算中,只有第一个 expr 2 + 3 是计算正确的,不要忘记空格哦!
(2)乘法运算符使用 \*,乘法运算符前需要加 \,如下所示:
-
[root@localhost ~]# expr 2 * 3
-
expr: 语法错误
-
[root@localhost ~]# expr 2 \* 3
-
6
-
[root@localhost ~]#
1.3.2 $[ 算术表达式 ]
这种方法没有格式的限制,如下所示:
-
[root@localhost ~]# echo $[5+9]
-
14
-
[root@localhost ~]# echo $[ 5+9 ]
-
14
-
[root@localhost ~]# echo $[ 5 + 9 ]
-
14
-
[root@localhost ~]# a=11
-
[root@localhost ~]# echo $[ $a + 9 ]
-
20
-
[root@localhost ~]#
1.3.3 $((算术表达式))
这种方式和 $[算术表达式] 一样,如下所示:
-
[root@localhost ~]# echo $((5+9))
-
14
-
[root@localhost ~]# echo $((5 + 9))
-
14
-
[root@localhost ~]# echo $(( 5 + 9 ))
-
14
-
[root@localhost ~]# echo $(( $a * 9 ))
-
99
-
[root@localhost ~]#
二、实例
在以下实例中,a = 11, b = 10。
2.1 * 、/ 和 %
-
[root@localhost ~]# echo $[$a/$b]
-
1
-
[root@localhost ~]# echo $[$a%$b]
-
1
-
[root@localhost ~]# echo $[$a*$b]
-
110
-
[root@localhost ~]# echo $(($a/$b))
-
1
-
[root@localhost ~]# echo $((100/3))
-
33
-
[root@localhost ~]# echo $(($a/$b))
-
1
-
[root@localhost ~]# echo $((15%4))
-
3
-
[root@localhost ~]# expr $a \* $b
-
110
-
[root@localhost ~]# expr $a / $b
-
1
-
[root@localhost ~]# expr $a % $b
-
1
-
[root@localhost ~]#
注意:上面三个运算方法都只支持整数运算,关于带小数的运算会单独一篇文章讲解,同时也注意使用 expr 计算时,乘法运算符前需要加反斜杠转化。
2.2 + 和 -
-
[root@localhost ~]# echo $[$a+$b]
-
21
-
[root@localhost ~]# echo $[$a-$b]
-
1
-
[root@localhost ~]# echo $[$b-$a]
-
-1
-
[root@localhost ~]# echo $(($a+$b))
-
21
-
[root@localhost ~]# echo $((10-11))
-
-1
-
[root@localhost ~]# expr $a + $b
-
21
-
[root@localhost ~]# expr $b - $a
-
-1
-
[root@localhost ~]#
2.3 == 和 !=
运算符 == 和 != 在等式成立的时候返回1,不成立返回0,如下所示:
-
[root@localhost ~]# echo $[$a == $b]
-
0
-
[root@localhost ~]# echo $[$a != $b]
-
1
-
[root@localhost ~]# echo $(($a == $b))
-
0
-
[root@localhost ~]# echo $(($a != $b))
-
1
-
[root@localhost ~]# expr $a == $b
-
0
-
[root@localhost ~]# expr $a != $b
-
1
-
[root@localhost ~]#
2.4 =
赋值运算符就简单了,将赋值运算符右边计算的值赋值到左边的变量中,注意是变量哦!如下所示:
-
[root@localhost ~]# c=$(expr $a + $b)
-
[root@localhost ~]# echo $c
-
21
-
[root@localhost ~]# c=$(($a*$b))
-
[root@localhost ~]# echo $c
-
110
-
[root@localhost ~]# c=$(($a/$b))
-
[root@localhost ~]# echo $c
-
1
-
[root@localhost ~]# c=$[$a/$b]
-
[root@localhost ~]# echo $c
-
1
-
[root@localhost ~]#
注意:赋值运算符两边是没有空格的。
三、总结
算术运算符在使用的时候注意格式问题,还有就是一些运算方法只支持整数运算,感觉不错点赞支持下吧!关注我有跟多干货!
文章来源: blog.csdn.net,作者:Linux猿,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/nyist_zxp/article/details/113447594
- 点赞
- 收藏
- 关注作者
评论(0)