算术展开
shell 允许通过扩展来执行算术运算。 这允许我们将 shell 提示符用作计算器:
[我@linuxbox ~]$ 回声 $((2 + 2))
4
[我@linuxbox ~]$ 回声 $((2 + 2))
4
算术扩展使用以下形式:
$((表达))
协调 表达 是由值和算术运算符组成的算术表达式。
算术扩展只支持整数(整数,没有小数),但可以执行相当多的不同运算。 以下是一些受支持的运算符:
表 7-1:算术运算符
Opera至r Description
+ 增加
- 减法
* 乘法
/ 除法(但请记住,由于扩展仅支持整数算术,因此结果为整数)。
% Modulo,简单的意思是“余数”。
** 幂
算术表达式中的空格不重要,表达式可以嵌套。 例如,将 5 的平方乘以 3:
[我@linuxbox ~]$ 回声 $(($((5**2)) * 3))
75
[我@linuxbox ~]$ 回声 $(($((5**2)) * 3))
75
单括号可用于对多个子表达式进行分组。 使用这种技术,我们可以重写上面的示例并使用单个扩展而不是两个扩展来获得相同的结果:
[我@linuxbox ~]$ 回声 $(((5**2) * 3))
75
[我@linuxbox ~]$ 回声 $(((5**2) * 3))
75
这是使用除法和余数运算符的示例。 注意整数除法的效果:
[我@linuxbox ~]$ echo 五除以二等于 $((5/2))
五除以二等于2
[我@linuxbox ~]$ 与 $((5%2)) 剩余的回声。
剩下 1 个。
[我@linuxbox ~]$ echo 五除以二等于 $((5/2))
五除以二等于2
[我@linuxbox ~]$ 与 $((5%2)) 剩余的回声。
剩下 1 个。
第 34 章更详细地介绍了算术展开。