2. expr 命令
expr 命令是用于表达式求值的命令,主要用于执行基本的数学运算、字符串操作和逻辑比较。
expr 命令用来求表达式的值,并将最终结果打印至标准输出。
命令的语法
expr 表达式
常用表达式
表达式
说明
整数比较
<整数1>
< <整数2>整数1 小于 整数2(
< 需要转义写成 \<)<整数1>
<= <整数2>整数1 小于等于 整数2(
<= 需要转义写成 \<=)<整数1>
= <整数2>整数1 等于 整数2
<整数1>
!= <整数2>整数1 不等于 整数2
<整数1>
>= <整数2>整数1 大于等于 整数2(
>= 需要转义写成 \>=)<整数1>
> <整数2>整数1 大于 整数2(
> 需要转义写成 \>)整数算数运算
<整数1>
+ <整数2>计算 整数1 加上 整数2 的和
<整数1>
- <整数2>计算 整数1 减去 整数2 的差
<整数1>
* <整数2>计算 整数1 乘以 整数2 的积
<整数1>
/ <整数2>计算 整数1 除以 整数2 的商(整数)
<整数1>
% <整数2>求余数,求 整数1 除以 整数2 的余数
字符串运算
<字符串>
: <正则表达式>返回 正则表达式 在 字符串 中匹配到的子串
match <字符串> <正则表达式>返回 正则表达式 在 字符串 中匹配到的子串(同上)
substr <字符串> <起始位置整数> <长度整数>返回 字符串 的子串,起始位置是从 1 开始的整数。
index <字符串> <子字符串>返回 子字符串 在 字符串 中出现的起始位置(从1开始),失败返回 0。
length <字符串>返回 字符串 长度。
说明
- 在进行比较运算时返回布尔值,真值(true)用
1表示,假值(false)用0表示。 - expr 只能进行整数算数运算,运算的返回值也是整数(用字符串表示)。
示例
weimingze@mzstudio:~$ expr 100 \< 200
1
weimingze@mzstudio:~$ expr 100 \<= 200
1
weimingze@mzstudio:~$ expr 100 = 200
0
weimingze@mzstudio:~$ expr 100 != 200
1
weimingze@mzstudio:~$ expr 100 + 200
300
weimingze@mzstudio:~$ expr 100 - 200
-100
weimingze@mzstudio:~$ expr 100 \* 200
20000
weimingze@mzstudio:~$ expr 14 / 3
4
weimingze@mzstudio:~$ expr 14 % 3
2
weimingze@mzstudio:~$ expr match "hello.py" "\w*.py"
8
weimingze@mzstudio:~$ expr match "hello.sh" "\w*.py"
0
weimingze@mzstudio:~$ expr length "hello"
5
weimingze@mzstudio:~$ expr index "hello" "e"
2
weimingze@mzstudio:~$ expr substr "hello" 2 3
ell
练习:
- 使用 expr 命令计算 199 + 1 的值。
- 使用 expr 命令计算 3 * ( 199 + 1 ) 的值。
- 使用 expr 命令计算 3 * ( 199 + 1 ) 的结果占用的位数。