注意点:
【1】有些运算符需要用 \ 来转义
【2】算数运算的化只适用于整数
【3】每个数,每个符号 之间全部要用空格分开
【4】运算优先顺序,与日常运算顺序一样,先计算括号中的,然后是*和/,再然后是+和-
算数运算:
expr ARG1 | ARG2 #若ARG1 的值不为0 或者为空,则返回ARG1,否则返回ARG2
expr ARG1 & ARG2 #若两边的值都不为0 或为空,则返回ARG1,否则返回 0
expr ARG1 < ARG2 #要转义\<,ARG1 小于ARG2,正确返回1,错误返回0
expr ARG1 <= ARG2 #要转义\<=,ARG1 小于或等于ARG2,正确返回1,错误返回0
expr ARG1 = ARG2 #ARG1 等于ARG2,正确返回1,错误返回0
expr ARG1 != ARG2 #ARG1 不等于ARG2,正确返回1,错误返回0
expr ARG1 >= ARG2 #要转义\>,ARG1 大于或等于ARG2,正确返回1,错误返回0
expr ARG1 > ARG2 #要转义\>=,ARG1 大于ARG2,正确返回1,错误返回0
expr ARG1 + ARG2 #计算 ARG1 与ARG2 相加之和
expr ARG1 - ARG2 #计算 ARG1 与ARG2 相减之差
expr ARG1 * ARG2 #要转义\*,计算 ARG1 与ARG2 相乘之积
expr ARG1 / ARG2 #计算 ARG1 与ARG2 相除之商
expr ARG1 % ARG2 #计算 ARG1 与ARG2 相除之余数
对字符串的使用:
expr同样可以对字符串进行操作
match
格式:expr match $string substring
描述:在string字符串中匹配substring字符串(substring字符串可以是正则表达式),然后返回匹配到的substring字符串的长度,若找不到则返回0
举例:
[root@wxl-1 ~]# expr match "wxl12221121" .*121
11
substr
格式:expr substr stringstringposition $length
描述:从substr 的stringstringposition位置截取length长度 (坐标是从1开始计算)
举例:
[root@wxl-1 ~]# expr substr "wxlxxxwxl" 2 2
xl
附加:{string:position}和{string:position:length}也可以实现类似的功能,不过计算下标是从0开始的
[root@wxl-1 ~]# aa=wxlwxl
[root@wxl-1 ~]# echo ${aa:2}
lwxl
[root@wxl-1 ~]# echo ${aa:2:2}
lw
index
格式:expr index string substring
描述:在字符串stringsubstring索引命令功能在字符串string上找出substring中字符第一次出现的位置,若找不到则expr index返回0,注意它匹配的是字符而非字符串
举例:
[root@wxl-1 ~]# expr index wxwwwad a
6
length
格式:expr length string
描述:得到string的长度
举例:
[root@wxl-1 ~]# cc=asddsa
[root@wxl-1 ~]# expr length $cc
6