概述
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``)。