expr 去除首尾的空格

c="   abcd1234   "

r=`expr "$c" : '[[:space:]]*\(.*\)[[:space:]]*$'`

[root@localhost script]# echo "$r"

abcd1234   


expr 计算长度

expr length "$a"


expr


通用求值表达式, 通过给定的操作(参数必须 以空格分开)连接参数,并对参数求值,可以使算术操作,比较操作,字符操作或者逻辑操作


expr 3 +5


expr 5 % 3


expt 1 / 0

error expr: division bu zero


expr 5 \* 3

算术表达式中使用乘法操作,乘法符号必须被转义


y=`expr $y + 1`

增加变量的值于 let y=y+1 y=$((y+1))相同


常用的比较操作有 < >  <= >= 等等

使用的时候也需要转义 = 不需要

比较操作返还1 true 0 false

a=1;b=1

c=`expr $a = $b`

echo $c

1

d=`expr $a \> $b` 

echo $d

0


a=1234zipper43231

计算$a的长度

expr length $a

从字符串的开头查找匹配的字符

b=`expr index "$a" 23`

echo $b

2

截取字符串

c=`expr substr $a 2 4`


match 默认是从字符串的开头进行搜索

b=`expr match "$a" '[0-9]*'`   #返回数字的个数

c=`expr match "$a" '\([0-9]*\)'`  # 返回1234

: 和 match 相同


expr "$a" : '\(.\)'         # 返回第一个字符 1

如果不加括号的话, 

expr "$a" : '.*'           # 返回$a的长度

b=`expr "$a" : '\(.....\)' `   

echo $b

1234z                        #返回开头的5个字符

b=`expr "$a" : '.*\(.....\)' `

echo $b

43231                        #返回结尾的5个字符