您的位置:首页 > 其它

expr常见用法

2014-05-23 17:47 387 查看
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"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: