1 运算符号
如果要执行数学运算,那就肯定有各种运算符号,shell中也有许多运算符。
运算符 | 说明 |
---|---|
+、- | 加法、减法(或负号) |
*、/、% | 乘法、除法、取余 |
** | 幂运算 |
++、– – | 自增、自减(可以放在变量的前面或后面) |
++、– – | 自增、自减(可以放在变量的前面或后面) |
!、&&、| | | 逻辑非(取反)、与(and)、或(or) |
<、<=、>、>= | 比较符号(小于、小于等于、大于、大于等于) |
<<、>> | 向左移位、向右移位 |
~、|、&、^ | 按位取反、按位或、按位与、按位异或 |
=、+=、-=、*=、/=、%= | 赋值运算符,例如a+=1相当于a=a+1 |
2 数学计算命令
shell不能直接进行算术运算,必须使用数学计算命令
命令 | 说明 |
---|---|
(( )) | 用于整数计算,效率很高,推荐使用 |
let | 用于整数运算,和(( ))类似 |
$[ ] | 用于整数运算,不如(( ))灵活 |
expr | 可用于整数运算,也可以处理字符串。比较麻烦,需要注意各种细节 |
bc | linux下的计算器程序,可以处理整数和小数(shell本身只支持整数计算,需要计算小数就要用bc) |
在这些计算命令中大多数命令只能用于整数计算
(1) (( ))的用法
注意:这里的括号必须是英文括号
自增(++)和自减(- -)运算
自增和自减符号可以放在变量的前面和后面
放在变量前面:输出整个表达式时会直接输出运算后的值
放在变量后面:输出整个表达时时不会直接输出运算后的值,返回的是运算前的值,运算后的值需要echo $变量 来查看
注意:当一个变量有两个需要计算的表达式时,以最后一个表达式的结果作为变量的值
(2)let的用法
在使用let命令做计算时,需要先定义变量的数值,然后方可使用let命令来进行计算
(3)expr命令
在使用expr命令时需要注意两点:
(1)运算符及用于计算的数字左右都要有一个空格,否则不会进行计算
(2)使用乘号时,必须用 \ 屏蔽其特定的含义,因为shell可能会误解*的含义
(4)$[ ]的使用
总结:上述的四种计算方法只能用于计算整数,不能够进行小数的运算
(5)bc命令
bc是linux下的计算器,除了作为计算器使用,还可以作为命令行计算工具来使用,它可以进行小数的运算。
在进行小数运算时,我们可以使用scale=x,来规定计算结果所保留的小数位,假如x=2,那么计算结果就保留两位小数