expr用法:
1.用于数学表达式的运算;
2.用户字符串操作;
expr的表达式部分支持的操作符实际上面是非常有限的。如果expr执行其不支持的操作符,将会报错!
逻辑表达式的操作符包括:| , & , > , >= , < , <= , = , !=
数学表达式的操作符包括:+, - , * , / , %
上述的操作符实际上都是多元操作符,在书写expr命令时,不可将参数与操作符连起来写(例如:expr 1+2)。expr会根据Shell的IFS将上述的表达式解析成一个参数传入。(expr实际上起始来说还是一个可执行程序嘛!传入的参数都是有规律的)
expr的字符串操作格式:
1. 字符串匹配:
格式: expr STRING : REGEXP
expr match STRING REGEXP
作用: 输出正则表达式的匹配结果。
2.字符串长度:
格式: expr length STRING
作用: 输出字符串长度。
3.字符串中子串截取:
格式: expr substr STRING POS LENGTH
作用: 输出截取的子串。
注意: POS所指定的起始位是从1开始算起的。
4.字符串中字符查询:
格式:
expr index STRING CHARS
作用: 输出字符在字符串中的位置。
在Shell中,要区分哪部分是Shell处理的,哪部分是命令处理的。如同expr命令在书写时,虽然格式是固定的,man手册页中也清楚的讲明了使用规则!在编程时,要先Shell后命令。