如何在 Bash 中评估算术表达式?
Bash 是一种功能强大的编程语言,用于在 Linux 和其他基于 Unix 的系统上编写 shell 脚本。shell 脚本中最常见的任务之一是评估算术表达式。在本文中,我们将讨论如何在 Bash 中评估算术表达式并探讨一些示例。
介绍
算术表达式是对数值执行的数学计算。在 Bash 中,算术表达式使用 expr 命令进行评估,该命令将字符串评估为算术表达式并返回结果。expr 命令的语法如下:
$ expr expression
这里,expression 是要评估的算术表达式。例如,要评估表达式 2 + 3,我们将输入以下命令:
$ expr 2 + 3
这将返回结果 5。
基本算术运算符
Bash 支持所有基本算术运算符,包括加法、减法、乘法和除法。这些运算符可用于执行简单的算术计算。下表显示了基本算术运算符及其对应的符号。
运算符 |
符号 |
---|---|
加法 |
+ |
减法 |
- |
乘法 |
* |
除法 |
/ |
让我们看一些在 Bash 中使用这些基本算术运算符的示例。
示例 1:加法
要在 Bash 中执行加法,我们使用 + 符号。例如,要将 2 和 3 相加,我们将输入以下命令:
$ expr 2 + 3
这将返回结果 5。
示例 2:减法
要在 Bash 中执行减法,我们使用 - 符号。例如,要从 5 中减去 3,我们将输入以下命令:
$ expr 5 - 3
这将返回结果 2。
示例 3:乘法
要在 Bash 中执行乘法,我们使用 * 符号。例如,要将 2 和 3 相乘,我们将输入以下命令:
$ expr 2 * 3
请注意,* 符号需要用反斜杠 () 进行转义,以防止 shell 将其解释为通配符字符。
这将返回结果 6。
示例 4:除法
要在 Bash 中执行除法,我们使用 / 符号。例如,要将 6 除以 2,我们将输入以下命令:
$ expr 6 / 2
这将返回结果 3。
运算符优先级
在 Bash 中评估算术表达式时,务必牢记算术运算符的优先级。优先级决定了运算符的评估顺序。
基本算术运算符的优先级顺序如下:
乘法和除法(从左到右评估)
加法和减法(从左到右评估)
例如,在表达式 2 + 3 * 4 中,首先评估乘法,表达式被评估为 2 + 12,结果为 14。
让我们看一些在 Bash 中使用优先级的示例。
示例 5:乘法和除法
在表达式 2 + 4 / 2 * 3 中,首先评估除法,表达式被评估为 2 + 2 * 3,结果为 8。要将表达式评估为 (2 + 4) / (2 * 3),我们将使用括号对加法和乘法进行分组:
$ expr 2+42+4 / 2\*32\*3
这将返回结果 1。
示例 6:使用括号进行分组
要将表达式的部分组合在一起,我们可以使用括号。例如,在表达式 2 * 3 + 4 中,我们可以用括号将乘法括起来,以确保它首先被评估:
$ expr 2 * 3+43+4
这将返回结果 14。
取模运算符
除了基本算术运算符之外,Bash 还支持取模运算符 (%),它返回除法运算的余数。例如,要计算 5 除以 2 的余数,我们将输入以下命令:
$ expr 5 % 2
这将返回结果 1。
让我们看一个在 Bash 中使用取模运算符的示例。
示例 7:取模运算符
在表达式 17 % 4 + 3 * 2 中,首先评估取模运算,表达式被评估为 1 + 6,结果为 7。
$ expr 17 % 4 + 3 * 2
这将返回结果 7。
Bash 中的高级算术函数
Bash 还提供了一些可用于算术表达式的 高级算术函数。这些函数包括平方根、指数和绝对值。让我们更详细地了解每个函数。
平方根
要在 Bash 中计算数字的平方根,我们使用 sqrt 函数。例如,要计算 16 的平方根,我们将输入以下命令:
$ expr sqrt 16
这将返回结果 4。
指数
要在 Bash 中将数字提高到幂,我们使用 ** 运算符。例如,要计算 2 的 3 次幂,我们将输入以下命令:
$ expr 2 ** 3
这将返回结果 8。
绝对值
要在 Bash 中计算数字的绝对值,我们使用 abs 函数。例如,要计算 -5 的绝对值,我们将输入以下命令:
$ expr abs -5
这将返回结果 5。
在算术表达式中使用变量
在 Bash 中,我们还可以在算术表达式中使用变量。我们可以使用 = 运算符为变量赋值,然后在算术表达式中使用变量。例如,要将值 5 赋给名为 x 的变量,我们将输入以下命令:
$ x=5
然后,我们可以在算术表达式中使用该变量。例如,要将 2 加到 x 的值上,我们将输入以下命令:
$ expr $x + 2
这将返回结果 7。
结论
评估算术表达式是 Bash 脚本中的一项常见任务。通过使用 expr 命令和基本算术运算符,以及优先级和取模运算符,我们可以在 Bash 中执行简单的算术计算。通过本文中介绍的示例,您应该对如何在 Bash 中评估算术表达式以及如何在自己的脚本中应用这些概念有一个很好的理解。