expr
是 Linux 和 Unix 系统中的一个命令行工具,用于计算表达式的值。它主要用于 shell 脚本中,以便执行算术运算和测试操作。以下是 expr
命令的一些基本用法和选项:
基本语法
expr 表达式
运算符
+
:加法-
:减法*
:乘法/
:除法%
:取模(求余数)=
:等于(用于测试)!=
:不等于(用于测试)>
:大于(用于测试)<
:小于(用于测试)>=
:大于等于(用于测试)<=
:小于等于(用于测试)
字符串操作
:
:字符串匹配操作,类似于 shell 中的模式匹配。
实例
- 算术运算:
expr 3 + 5
输出结果为 8
。
- 字符串连接:
expr "Moon" : "Moo"c
输出结果为 Moonshot
。
- 比较操作:
expr 10 > 5
输出结果为 1
(表示真),如果比较结果为假,则输出 0
。
- 组合运算:
expr 5 \* 2 + 3
输出结果为 13
。注意乘法运算符前需要使用反斜杠 \
进行转义,因为 *
在 shell 中是一个特殊字符。
- 测试字符串长度:
expr length "Moonshot"
输出结果为 8
,表示字符串 "Moonshot" 的长度。
- 字符串匹配:
expr "Moonshot" : "Moo"c
输出结果为 1
,表示 "Moonshot" 匹配模式 "Moo"c。
- 逻辑与:
expr \( 2 + 2 = 4 \) && \( 3 + 3 = 6 \)
输出结果为 1
,表示两个条件都为真。
- 逻辑或:
expr \( 2 + 2 = 4 \) || \( 3 + 3 = 5 \)
输出结果为 1
,表示至少有一个条件为真。
expr
命令在处理复杂的算术运算时不如 awk
或 bash
内置的算术扩展方便,但在简单的脚本中进行基本的算术和字符串操作时非常有用。