expr命令适用于对数字、字符串的检测。
此命令用于计算表达式的值,特殊符号需要借助"\"符号转义,主要用于数字。
命令格式为:expr argument operator argument
加法:
expr 100 + 100
200
减法:
expr 100 - 1000
-900
乘法:
expr 10 \* 10
100
除法:
expr 123 / 10
12
自增运算
在C语言中,我们知道 += 这个运算符,那么现在我们使用expr命令怎么去实现呢?
NUM=15
NUM=`expr $NUM + 10`
echo $NUM
25
现在我们已经修改NUM的值,查看下:
expr $NUM + 1
26
数值检查
数值不能和字符串相加:
expr "abc" + 10
expr: non-numeric argument
从结果判断变量是否为数字
NUM=str
expr $NUM + 10 > /dev/null 2>&1
echo $?
2
说明NUM变量非数字
NUM=10
expr $NUM + 1 > /dev/null 3>&1
echo $?
0
从结果得知,NUM变量为数字
NUM=str
expr $NUM = "str"
1 ①
echo $?
0 ②
①,这里是expr的返回值,1表示成功
②,这里是系统返回值,0表示成功
模糊匹配
使用正则表达式进行匹配,并返回值
STR=google.com.hk
expr $STR : '.*\.'
11
此命令用于计算表达式的值,特殊符号需要借助"\"符号转义,主要用于数字。
命令格式为:expr argument operator argument
加法:
expr 100 + 100
200
减法:
expr 100 - 1000
-900
乘法:
expr 10 \* 10
100
除法:
expr 123 / 10
12
自增运算
在C语言中,我们知道 += 这个运算符,那么现在我们使用expr命令怎么去实现呢?
NUM=15
NUM=`expr $NUM + 10`
echo $NUM
25
现在我们已经修改NUM的值,查看下:
expr $NUM + 1
26
数值检查
数值不能和字符串相加:
expr "abc" + 10
expr: non-numeric argument
从结果判断变量是否为数字
NUM=str
expr $NUM + 10 > /dev/null 2>&1
echo $?
2
说明NUM变量非数字
NUM=10
expr $NUM + 1 > /dev/null 3>&1
echo $?
0
从结果得知,NUM变量为数字
NUM=str
expr $NUM = "str"
1 ①
echo $?
0 ②
①,这里是expr的返回值,1表示成功
②,这里是系统返回值,0表示成功
模糊匹配
使用正则表达式进行匹配,并返回值
STR=google.com.hk
expr $STR : '.*\.'
11
这里返回最后一个点出现的索引。
更多信息,参考:expr