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"
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"