Linux expr 命令

17 Mar 2025 | 5 分钟阅读

expr 命令 用于评估给定表达式并显示其标准输出。每个分隔的表达式都被视为一个参数。这些表达式可以是整数和字符串表达式,包括正则表达式。如果表达式未正确传递,它将阻止命令的执行。

expr 命令支持以下运算符

  • 对于整数: 加法、减法、乘法、除法和取模。
  • 对于字符串: 正则表达式,字符串中的字符集。

当我们想在终端上执行操作时,它会很有用,例如在字符串中搜索子字符串、搜索其索引、执行算术运算等等。因此,expr 命令允许我们从终端执行所有这些任务。

语法

expr expression

选项

expr 命令支持以下选项以使其更实用。

  • --help: 'help' 选项将显示其文档,其中包含其描述和其他有用信息。如果我们在使用 expr 命令时遇到问题,它会很有用。要获取帮助,请按如下方式执行命令

以上命令将显示帮助并退出。请看下面的输出

Linux expr command
  • --version: 用于显示版本信息。它将显示诸如开源、保修信息、其特定版本和作者姓名等信息。要显示版本信息,请按如下方式执行命令

考虑下面的输出

Linux expr command

让我们了解 expr 命令的一些基本和高级示例。在本节中,我们将在 Ubuntu 上执行所有示例,但它也可以在所有基于 Linux 的系统上工作。

示例1:使用 expr 命令执行基本算术运算。

要执行基本算术运算,请执行 expr 命令,并在其上传递整数和运算符。请记住,每个标记(表达式)都应由空格分隔。请看以下示例

  • 加法: 将两个数字 15 和 12 相加。

输出

Linux expr command
  • 减法: 10 减去 5。

输出

Linux expr command
  • 乘法: 10 乘以 5。

输出

Linux expr command
  • 除法: 10 除以 2。

输出

Linux expr command

示例2:查找字符串的长度。

要查找字符串的长度,我们以字符串 'ALPHABET' 为例。执行以下命令以查找给定字符串的长度

在上述命令中,第一个变量存储给定字符串的值,第二个变量存储字符串的长度。echo 命令将显示 b 的值。请看下面的输出

Linux expr command

示例3:查找字符在字符串中的位置。

要查找字符串 'ALPHABET' 中字符 'P' 的位置,请执行以下命令

以上命令将显示指定字符的位置。请看下面的输出:它显示的位置是 '3',因为它是从头开始的第三个字符。

Linux expr command

示例4:从字符串中查找子字符串。

让我们从字符串 'ALPHABET' 中查找从第三个字符到第六个字符的子字符串。执行以下命令

以上命令将截取从第三个字符开始,长度为 6 的字符串。请看下面的输出

Linux expr command

示例5:使用 shell 脚本对变量执行操作。

我们还可以使用 shell 脚本对变量执行操作。例如,让我们创建一个用于添加两个数字的脚本。创建文件 'script.sh',并在其中写入以下脚本

以上脚本将从终端获取变量 a 和 b 的值,并使用 expr 命令执行加法。

使用 chmod 命令使脚本可执行,如下所示

现在,执行脚本如下

考虑下面的输出

Linux expr command

示例6:比较两个表达式。

我们可以使用 expr 命令比较两个表达式。使用诸如 "=, <, >, !=" 等逻辑运算符来比较表达式。如果条件为真,则结果为 1,如果为假,则结果为 0。让我们取两个数字 50 和 70 对它们执行一些操作。按如下方式声明两个变量 a 和 b

检查 a 是否等于 b

检查 a 是否小于 b

检查 a 是否不等于 b

从上面的命令可以看出,如果条件为真,则输出为 1,否则为 0。请看下面的输出

Linux expr command

示例7:匹配两个字符串中的字符数。

我们可以显示两个字符串中匹配字符的数量。要显示匹配字符的数量,请执行 expr 命令,并按如下方式传递字符串

例如,执行以下命令

以上命令将显示匹配字符的数量。请看下面的输出

Linux expr command

示例8:递增变量。

expr 命令也用于递增变量的值。例如,声明一个值为 20 的变量

将值增加 1

将值增加 5

在上述命令中,我们已将递增后的值存储在新变量 'b' 中,但更新后的值也可以存储在同一个变量中。请看下面的输出

Linux expr command

示例9:查找模数。

要查找模数,请使用取模运算符(%)。例如,查找 10 mod 5,执行命令如下

对于 20 mod 30,执行命令如下

以上命令将显示给定数字的模数。请看下面的输出

Linux expr command

示例10:显示两个条件之间为真的条件。

对于一个场景,有两种条件,一个为真,另一个为假,我们想显示为真的条件。为此,我们将在两个条件之间使用 '|' 运算符,如果条件 1 为真,则显示条件 1;否则,显示条件 2。请看下面的命令

在上述命令中,有两个条件 c 和 d,我们正在变量 e 中比较它们。它将打印为真的条件。请看下面的输出

Linux expr command
下一个主题Linux 正则表达式