阅读(3490) (15)

Bash 基本运算符

2020-06-17 12:59:59 更新

您可能希望通过脚本运算获得的结果是您想要的,那么您需要应用到算术运算符参与算术运算以获得您所需的结果。

算术运算符列表

在 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
```