> 环境与工具 > expr

expr: 表达式求值

expr 命令用于评估各种表达式,包括整数运算、字符串操作和逻辑运算,并将结果返回到标准输出。在 shell 脚本中,它对于计算变量值或实现条件逻辑非常有用。

概述

expr 命令用于执行算术、关系、逻辑和字符串操作。每个参数都被视为一个单独的标记,因此运算符和操作数之间需要有空格。

主要特点

  • 算术运算(加、减、乘、除、取模)
  • 字符串运算(长度、子字符串、索引、正则表达式匹配)
  • 关系运算(等于、不等于、大于、小于)
  • 逻辑运算(与、或)

主要运算符

expr 命令使用各种运算符来评估表达式。每个运算符都应被视为一个单独的参数。

算术运算符

关系运算符

逻辑运算符

字符串运算符

生成的命令:

请尝试组合命令。

描述:

`expr` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

基本算术运算

expr 10 + 5

将两个数字相加。

变量与乘法运算

num=20
expr $num \* 3

使用变量值执行乘法。乘法运算符 (*) 在 shell 中具有特殊含义,因此需要进行转义。

获取字符串长度

expr length "Hello World"

返回给定字符串的长度。

提取子字符串

expr substr "example" 3 4

从字符串 'example' 的第 3 个位置开始提取 4 个字符。

正则表达式匹配与提取

expr "filename.tar.gz" : ".*\.\(tar\.gz\)"

从字符串中提取与正则表达式匹配的部分。括号内的内容将作为子匹配返回。

逻辑与 (AND) 运算

expr 5 \& 0

如果两个操作数都非零,则返回第一个操作数。在 shell 中,& 用于后台执行,因此需要进行转义。

提示与注意事项

使用 expr 时的注意事项和有用技巧。

主要注意事项

  • **必须有空格**:运算符和操作数之间必须有空格。
  • **转义**:在 shell 中具有特殊含义的字符(例如 `*`, `(`, `)`, `&`, `|`, `<` 等)需要用反斜杠 (`\`) 进行转义或用引号括起来。
  • **整数运算**:`expr` 主要支持整数运算。如果需要浮点数运算,应使用 `bc` 等其他工具。
  • **保存结果**:`expr` 的结果输出到标准输出,要将其保存到 shell 变量中,需要使用命令替换(例如 `result=$(expr 10 + 5)` 或 `result=`expr 10 + 5``)。

相同类别命令