转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。
Shell中有很多变量的计算,会用到多种运算符。例如这几种:
1. Shell中常见的算术运算符
运算符 | 意义(*表示常用) |
+、- | * 加法(或正号)、减法(或负号) |
*、/、% | * 乘法、除法、取余(取模) |
** | * 幂运算 |
++、-- | * 增加及减少,可前置也可放在变量结尾 |
!、&&、|| | * 逻辑非(取反)、逻辑与(and)、逻辑或(or) |
<、<=、>、>= | 比较符号(小于、小于等于、大于、大于等于) |
==、!=、= | * 比较符号(相等、不相等、对于字符串“=”也可以表示相当于) |
<<、>> | 向左移位、向右移位 |
~、|、&、^ | 按位取反、按位异或、按位与、按位或 |
=、+=、-=、*=、/=、%= | * 赋值运算符、例如a+=1相当于a=a+1,a-=1相当于a=a-1 |
2. shell中常见的算术运算命令
运算操作符与运算命令 | 意义 |
(()) | 用于整数运算的常用运算符,效率很高 |
let | 用于整数运算,类似于"(())" |
expr | 可用于整数运算,但还有很多其它的额外功能,相关文章见《【温故知新】expr的用法回顾》 |
bc | Linux下的一个计算器程序(适合整数及小数运算) |
$[] | 用于整数运算 |
awk | awk既可以用于整数运算,也可以用于小数运算 |
declare | 定义变量值和属性,-i参数可以用于定义整形变量,做运算 |
3. 使用例子
1)(())的运算
[root@test101 ~]# echo $((1+5))
6
[root@test101 ~]#
[root@test101 ~]# a=$((1+2**3-4%3))
[root@test101 ~]# echo $a
8
[root@test101 ~]#
2)let运算
let运算命令的语法:let赋值表达式
let赋值表达式的功能等同于“((赋值表达式))”
例子:
[root@test101 ~]# a=3
[root@test101 ~]# let a=a+7
[root@test101 ~]# echo $a
10
[root@test101 ~]#
3)bc运算
[root@test101 ~]# echo 10+5|bc #例1
15
[root@test101 ~]#
[root@test101 ~]# a=5 #例2
[root@test101 ~]# a=`echo $a+6|bc`
[root@test101 ~]# echo $a
11
[root@test101 ~]#
4)$[]符号的运算
[root@test101 ~]# a=11 #例1
[root@test101 ~]# a=$[a+22]
[root@test101 ~]# echo $a
33
[root@test101 ~]#
[root@test101 ~]# echo $[5*8] #例2
40
[root@test101 ~]#
5)awk运算
[root@test101 ~]# echo "3 5"|awk '{print ($1+3)*$2}'
30 #$1表示第一个数字3,$2表示第二个数字9,中间用空格隔开,算式就变成了计算(3+3)*5=30
[root@test101 ~]#
6)declare运算(少用)
[root@test101 ~]# declare -i a=66 b=33 #-i参数用于将变量定义为整型
[root@test101 ~]# a=a+b #因为已经声明为整型,因此就可以直接进行运算了
[root@test101 ~]# echo $a
99
[root@test101 ~]#
理论知识出处:《跟老男孩学linux运维》,版权属于原作者