expr常见用法

来源:互联网 发布:淘宝快递助手在哪 编辑:程序博客网 时间:2024/06/06 03:04
1.用于整数的加减乘除余,运算符左右要有空格,如果没有空格表示是字符串连接
echo `expr 1 + 2`   ==> 3
echo `expr 1 - 2`   ==> -1
echo `expr 2 \* 2`  ==> 4  # *要用转义符,否则报错“expr: syntax error”
echo `expr 3 / 2`   ==> 1
echo `expr 9 % 5`   ==> 4  #求余

2.字符串操作
提取字符串的子串:expr substr 内容 起始位置(第一个字符位置是1) 字串长度
echo `expr substr "content" 1 5`  ==> "conte"
echo `expr substr "this is a test" 3 5` ==> "is is"

提取指定字符的下标(第一个字符下标是1):expr index 内容 字符
echo `expr index "content" "t"`  ==> 4  #从左到右第一次出现的字符的位置

求字符串长度(包含空格):expr length 字符串
echo `expr length "how are you"` ==> 11

3.测试非整数
x=3
expr $x + 1
echo $?  ==> 0  #x是整数

y=3.1
expr $y + 1
echo $?  ==> 2  #x是非整数

z="ab cd"
expr $z + 1
echo $?  ==> 2  #z是非整数

4.模式匹配
expr通过冒号(左右要有空格)右边的正则表达式匹配。.*意即任何字符重复0次或多次。
expr "how are you" : '.*'  ==> 11 #和上面的expr length一样,可以计算字符串长度
expr "how are you " : '\(.*\)you' ==> "how are "  #()要加转义符
expr "how are you " : '\wow are\(.*\)' ==> " you"
expr "hello.c" : '\(.*\).c'  ==> "hello"
expr "hello.xls" : '\w\{5\}.\(.*\)' ==> "xls"


0 0
原创粉丝点击