简单算术
下表列出了普通算术运算符:
表 34-3:算术运算符
操作员说明
操作员说明
+ 增加
- 减法
* 乘法
/ 整数除法
** 幂
% 模数(余数)
其中大部分是不言自明的,但整数除法和取模需要进一步讨论。
由于 shell 的算术运算仅对整数进行运算,因此除法的结果始终是整数:
[我@linuxbox ~]$ 回声 $(( 5 / 2 ))
2
[我@linuxbox ~]$ 回声 $(( 5 / 2 ))
2
这使得确定除法运算中的余数变得更加重要:
[我@linuxbox ~]$ 回声 $(( 5 % 2 ))
1
[我@linuxbox ~]$ 回声 $(( 5 % 2 ))
1
通过使用除法和取模运算符,我们可以确定 5 除以 2 结果为 2,余数为 1。
计算余数在循环中很有用。 它允许在循环执行期间以指定的时间间隔执行操作。 在下面的示例中,我们显示一行数字,突出显示每个 5 的倍数:
#!/斌/庆典
# modulo: 演示 ((i = 0; i <= 20; i = i + 1)) 的模运算符; 做
余数=$((i % 5))
如果((余数== 0)); 然后 printf "<%d> " $i
其他
printf "%d " $i
完成
printf“ \ n”
#!/斌/庆典
# modulo: 演示 ((i = 0; i <= 20; i = i + 1)) 的模运算符; 做
余数=$((i % 5))
如果((余数== 0)); 然后 printf "<%d> " $i
其他
printf "%d " $i
完成
printf“ \ n”
执行后,结果如下所示:
[我@linuxbox ~]$ 模
<0> 1 2 3 4 <5> 6 7 8 9 <10> 11 12 13 14 <15> 16 17 18 19 <20>
[我@linuxbox ~]$ 模
<0> 1 2 3 4 <5> 6 7 8 9 <10> 11 12 13 14 <15> 16 17 18 19 <20>