Bash 基本运算符
您可能希望通过脚本运算获得的结果是您想要的,那么您需要应用到算术运算符参与算术运算以获得您所需的结果。
算术运算符列表
在 Bash 中共支持11种算术运算符。
运算符 | 描述 | 运算示例 |
---|---|---|
+ |
加法 | $((5+3)) ,打印输出 8 |
- |
减法 | $((5-3)) ,打印输出 2 |
* |
乘法 | $((5*3)) ,打印输出 15 |
/ |
除法 | $((15/3)) ,打印输出 5 |
** |
求幂 | $((10**3)) ,打印输出 1000 |
% |
模 | $((10%3)) ,打印输出 1 |
+= |
常量递增变量,结果存储回变量 | x=5;let"x += 3";echo $x ,打印输出 8 |
-= |
常量递减变量,结果存储回变量 | x=5;let"x -= 3";echo $x ,打印输出 2 |
*= |
变量乘以常量,结果存储回变量 | x=5;let"x *= 3";echo $x ,打印输出 15 |
/= |
变量除以常量,结果存储回变量 | x=15;let"x /= 3";echo $x ,打印输出 5 |
%= |
变量除以常量的余数,结果存储回变量 | x=10;let"x %= 3";echo $x ,打印输出 1 |
关系运算符列表
运算符 | 描述 | 运算示例 |
---|---|---|
-eq |
检查两个数字是否相等 | 1 -eq 1 ,返回 true |
-ne |
检查两个数字是否不相等 | 1 -ne 2 ,返回 true |
-gt |
检查左边数是否大于右边数 | 2 -gt 1 ,返回 true |
-lt |
检查左边数是否小于右边数 | 1 -gt 2 ,返回 true |
-ge |
检查左边数是否大于等于右边数 | 2 -ge 1 ,返回 true |
-le |
检查左边数是否小于等于右边数 | 1 -le 2 ,返回 true |
逻辑运算符列表
运算符 | 描述 |
---|---|
&& |
逻辑为AND |
|| |
逻辑为OR |
Bash 算术运算
- 双括号的使用
基本语法:
((expression))
可采用四种大同小异的方法来实现所需的目标运算。
1. ```
Num=$((5+3))
echo "Num = $Num
```
2. ```
((Num=5+3))
echo "Num = $Num"
```
3. ```
Num1=5
Num2=3
((Num3=Num1+Num2))
echo "Num3 = $Num3"
```
4. ```
Num1=5
Num2=3
Num3=$((Num1+Num2))
echo "Num3 = $Num3"
```
以上四种方法结果均相同。
- 反引号的使用
反引号要与expr
(通用表达式求值器)执行算术扩展。
```expr` ``在算术运算结束后不会将结果保存到变量中,而是直接将结果打印输出,如下示例:
```
#!/bin/bash
echo "Num1=5, Num2=3"
echo "Num3 is the value of addition Num3=Num1+Num2"
Num1=5
Num2=3
echo "Num3= expr $Num1 + $Num2
"
执行后得到以下结果:
Num1=5,Num2=3
Num3 is the value of addition Num3=Num1+Num2
Num3= 8
```
- let 命令的构建
let 是 Bash 的内置命令,用于执行算术运算,算术运算完成后会将结果存储至变量中,语法为:
let <arithmetic expression>
示例:
```
#!/bin/bash
Num1=10 Num2=6 Num3=0 echo "W3Cschool" let "Num3 = $(( Num1 + Num2 ))" echo "Num3= $Num3"
执行后得到一下结果:
W3Cschool
Num3= 16
```