expr
语法:expr arg oper arg
1.对于数字运算必须是整数,否者会产生错误
[root@web sh]# expr 10 + 1 11 [root@web sh]# expr 10 / 2 5 [root@web sh]# expr 10 / 3 3 [root@web sh]# expr 10 \* 3 30
乘号需要转义 注意空格
2.测试命令返回状态
判断是不是整数
[root@web sh]# expr 2.5 + 1 >/dev/null 2>&1 [root@web sh]# echo $? 2 [root@web sh]# expr 2 + 1 >/dev/null 2>&1 [root@web sh]# echo $? 0
3.返回本身退出状态
[root@web sh]# a=ajax [root@web sh]# expr $a = 'ajax' 1 [root@web sh]# expr $a = 'ajax1' 0
返回1 表示正确 0表示错误
与系统最后的退出状态正好相反
4.模式匹配
使用expr通过指定冒号选项计算字符串中字符数, .*意即任
必须完整匹配才行
[root@web sh]# a=php55a [root@web sh]# expr $a : '.*' 6 匹配不了数字 a=aa.php [root@web sh]# expr $a : '\(.*\).php' aa [root@web sh]# echo $a php34ajax [root@web sh]# expr $a : '\([a-z]*[0-9]\)' php3 [root@web sh]# expr $a : '\([a-z]*[0-9]+\)' [root@web sh]# expr $a : '\([a-z]*[0-9]*\)' php34
5. 字符串操作
(1)截取字串
从1位置开始,不支持负数
expr substr string start length
[root@web sh]# expr substr 'php56123' 1 1 p [root@web sh]# expr substr 'php56123' 1 2 ph
(2)查找某个字符在字符串里第一次出现的位置
[root@web sh]# a=phpajax [root@web sh]# expr index $a p 1 [root@web sh]# expr index $a a 4 [root@web sh]# expr index $a aj 4 [root@web sh]# expr index $a aa 4
(3)计算字符串的长度
[root@web sh]# echo $a phpajax [root@web sh]# expr length $a 7