expr命令是一款表达式计算工具,使用它完成表达式的求值操作。
expr的常用运算符:
- 加法运算:+
- 减法运算:-
- 乘法运算:\*
- 除法运算:/
- 求摸(取余)运算:%
语法
expr(选项)(参数)
选项
--help:显示指令的帮助信息;
--version:显示指令版本信息。
参数
表达式:要求值的表达式。
实例
result=`expr 2 + 3`
result=$(expr $no1 + 5)
表达式说明:
- 用空格隔开每个项;
- 用 / (反斜杠) 放在 shell 特定的字符前面;
- 对包含空格和其他特殊字符的字符串要用引号括起来
实例
1、计算字串长度
> expr length “this is a test”
14
expr length “this is a test”
14
2、抓取字串
> expr substr “this is a test” 3 5
is is
expr substr “this is a test” 3 5
is is
3、抓取第一个字符数字串出现的位置
> expr index "sarasara" a
2
expr index "sarasara" a
2
4、整数运算
> expr 14 % 9
5
> expr 10 + 10
20
> expr 1000 + 900
1900
> expr 30 / 3 / 2
5
> expr 30 \* 3 (使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义)
90
> expr 30 * 3
expr: Syntax error
> expr 14 % 9
5
> expr 10 + 10
20
> expr 1000 + 900
1900
> expr 30 / 3 / 2
5
> expr 30 \* 3 (使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义)
90
> expr 30 * 3
expr: Syntax error
二、expr的字符串操作:
1、返回字符串长度:expr length 字串
[root@zq-crmtest-20423tmp]# expr length "hello world"
11
2、返回 String1 中包含 String2 中任意字符的第一个位置: expr indexString1 String2
[root@zq-crmtest-20423tmp]# expr index "abc" "b"
2
3、提取字符串的子串:expr substr 内容 起始位置 终点位置,
[root@zq-crmtest-20423tmp]# expr substr "this is a test" 3 5
is is