Linux expr 命令及实用示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习 Linux 的 expr 命令以及如何使用它进行各种文本处理和编辑任务。expr 命令是一个强大的工具,允许你直接从命令行执行算术运算、字符串操作和条件表达式。你将探索 expr 命令的用途和语法,学习如何执行基本的算术运算,并将其应用于字符串操作和条件表达式。本实验将帮助你掌握在日常 Linux 工作流中有效使用 expr 命令的知识。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("`Linux`")) -.-> linux/BasicSystemCommandsGroup(["`Basic System Commands`"]) linux(("`Linux`")) -.-> linux/TextProcessingGroup(["`Text Processing`"]) linux/BasicSystemCommandsGroup -.-> linux/echo("`Text Display`") linux/BasicSystemCommandsGroup -.-> linux/test("`Condition Testing`") linux/TextProcessingGroup -.-> linux/expr("`Evaluate Expressions`") subgraph Lab Skills linux/echo -.-> lab-422671{{"`Linux expr 命令及实用示例`"}} linux/test -.-> lab-422671{{"`Linux expr 命令及实用示例`"}} linux/expr -.-> lab-422671{{"`Linux expr 命令及实用示例`"}} end

理解 expr 命令的用途和语法

在这一步中,你将学习 Linux 中 expr 命令的用途和语法。expr 命令是一个强大的工具,可用于执行各种操作,包括算术计算、字符串操作和条件表达式。

expr 命令的基本语法如下:

expr [option] expression

其中,expression 是你想要评估的操作或表达式。expr 命令可以执行以下类型的操作:

  • 算术运算:+, -, *, /, %
  • 字符串操作:match, substr, index, length
  • 逻辑和比较操作:=, !=, \<, \>, \<=, \>=, |, &

让我们从使用 expr 进行一些基本的算术运算开始。

## 执行基本算术运算
expr 5 + 3
expr 10 - 4
expr 6 \* 7
expr 15 / 3
expr 17 % 5

示例输出:

8
6
42
5
2

在上述示例中,我们使用 expr 命令执行了加法、减法、乘法、除法和取模运算。需要注意的是,对于乘法运算,我们需要用反斜杠 (\*) 转义 * 字符,以防止 shell 将其解释为通配符。

接下来,让我们探索一些使用 expr 进行字符串操作的示例。

## 执行字符串操作
expr "Hello" : '\(.*\)'
expr "Linux is fun" : '.*is\(.*\)'
expr "www.example.com" : '.*\(.*\)\..*'

示例输出:

Hello
 fun
example

在这些示例中,我们使用 match 操作符通过正则表达式从输入字符串中提取子字符串。match 操作符返回与正则表达式模式匹配的字符串部分。

expr 命令还可用于条件表达式和逻辑操作。以下是一个示例:

## 执行条件表达式
expr 5 \> 3
expr 7 \< 10
expr 4 = 4
expr 8 \!= 5

示例输出:

1
1
1
1

在上述示例中,如果条件为真,expr 命令返回 1;如果条件为假,则返回 0

使用 expr 执行基本算术运算

在这一步中,你将学习如何使用 expr 命令执行基本的算术运算,例如加法、减法、乘法、除法和取模。

让我们从执行一些算术运算开始:

## 加法
expr 12 + 5

示例输出:

17
## 减法
expr 20 - 8

示例输出:

12
## 乘法
expr 6 \* 4

示例输出:

24
## 除法
expr 18 / 3

示例输出:

6
## 取模
expr 19 % 7

示例输出:

5

在上述示例中,我们使用 expr 命令执行了基本的算术运算。请记住,在执行乘法运算时,需要用反斜杠 (\*) 转义 * 字符,以防止 shell 将其解释为通配符。

现在,让我们尝试一些更复杂的算术表达式:

## 复杂表达式
expr \( 10 + 5 \) \* 3 / 2 + 1

示例输出:

26

在这个示例中,我们使用括号 () 对操作进行分组,以控制运算顺序。表达式 (10 + 5) * 3 / 2 + 1 的计算过程如下:

  1. 10 + 5 = 15
  2. 15 * 3 = 45
  3. 45 / 2 = 22.5
  4. 22.5 + 1 = 23.5expr 命令将其向下取整为 26。

使用 expr 进行字符串操作和条件表达式

在这一步中,你将学习如何使用 expr 命令进行字符串操作和条件表达式。

让我们从字符串操作开始:

## 提取子字符串
expr "Linux is fun" : '.*is\(.*\)'

示例输出:

 fun

在这个示例中,我们使用 match 操作符和正则表达式来提取输入字符串中 "is" 之后的子字符串。

## 获取字符串长度
expr "hello" : '.\{5\}'

示例输出:

5

在这里,我们使用 match 操作符和正则表达式来获取字符串 "hello" 的长度。

现在,让我们探索一些条件表达式:

## 比较操作
expr 7 \< 10
expr 5 \> 3
expr 4 = 4
expr 8 \!= 5

示例输出:

1
1
1
1

在这些示例中,我们使用 expr 命令执行比较操作,例如小于、大于、等于和不等于。如果条件为真,expr 命令返回 1;如果条件为假,则返回 0

你还可以使用逻辑运算符组合多个条件:

## 逻辑操作
expr 5 -eq 5 -a 7 -gt 3
expr 4 -ne 5 -o 8 -lt 10

示例输出:

1
1

在这些示例中,我们使用 -eq-gt-ne-lt 操作符来执行逻辑操作,例如 AND (-a) 和 OR (-o)。

总结

在本实验中,你学习了 Linux 中 expr 命令的用途和语法。你探索了如何使用 expr 执行基本的算术运算、字符串操作和条件表达式。你发现 expr 可以成为命令行中各种计算和文本处理任务的强大工具。本实验通过实际示例展示了 expr 命令的多功能性,帮助你掌握如何有效地在 Linux 工作流中利用它。

Linux 命令速查表

您可能感兴趣的其他 Linux 教程