Shell expr命令

Shell expr命令教程

Shell 中,expr 命令是 evaluate expressions 的缩写,译为 “表达式求值”。Shell expr 是一个功能强大,并且比较复杂的命令,它除了可以实现整数计算,还可以结合一些选项对字符串进行处理,例如计算字符串长度、字符串比较、字符串匹配、字符串提取等。

Shell expr命令详解

语法

expr exprisson

参数

参数 描述
exprisson 要计算的表达式

说明

expr 对表达式的格式有几点特殊的要求:

  1. 出现在表达式中的运算符、数字、变量和小括号的左右两边至少要有一个空格,否则会报错。

  2. 有些特殊符号必须用反斜杠 \ 进行转义(屏蔽其特殊含义),比如乘号 * 和小括号 (),如果不用 \ 转义,那么 Shell 会把它们误解为正则表达式中的符号( * 对应通配符,() 对应分组)。

  3. 使用变量时要加 $ 前缀。

案例

Shell expr整数运算

我们在终端输入以下代码,实现整数计算,具体代码如下:

expr 10 +20

运行后,终端输出如下:

11_Shell expr整数运算.png

我们看到,我们在使用 expr 进行整数运算时,加号后面没有加空格,此时程序报错,因此,使用 expr 进行运算时,运算符后面必须要加空格,现在,我们修改程序如下:

expr 10 + 20

运行后,终端输出如下:

12_Shell expr整数运算.png

我们看到,此时,程序正常了。

Shell expr乘法运算

我们在终端输入以下代码,实现整数计算,具体代码如下:

expr 4 * 5

运行后,终端输出如下:

13_Shell expr整数运算.png

我们看到,我们在使用 expr 进行乘法运算时,此时程序报错,因为,乘法运算需要使用转义字符进行转义,现在,我们修改程序如下:

expr 4 \* 5

运行后,终端输出如下:

14_Shell expr整数运算.png

我们看到,此时,程序正常了。

Shell expr小括号

我们在终端输入以下代码,实现整数计算,并使用小括号修改程序优先级,具体代码如下:

expr 2 + ( 4 \* 5 )

运行后,终端输出如下:

15_Shell expr整数运算.png

我们看到,我们在使用 expr 进行小括号运算时,此时程序报错,因为,小括号运算需要使用转义字符进行转义,现在,我们修改程序如下:

expr 2 + \( 4 \* 5 \)

运行后,终端输出如下:

16_Shell expr整数运算.png

我们看到,此时,程序正常了。

Shell expr计算结果赋值给变量

我们在终端输入以下代码,实现整数计算,并使用小括号修改程序优先级,具体代码如下:

m=5 n=`expr $m + 10` echo $n

运行后,终端输出如下:

17_Shell expr整数运算.png

我们看到,我们将计算结果赋值给了一个变量。

Shell expr命令总结

expr 对表达式的格式有几点特殊的要求:

  1. 出现在表达式中的运算符、数字、变量和小括号的左右两边至少要有一个空格,否则会报错。

  2. 有些特殊符号必须用反斜杠 \ 进行转义(屏蔽其特殊含义),比如乘号 * 和小括号 (),如果不用 \ 转义,那么 Shell 会把它们误解为正则表达式中的符号( * 对应通配符,() 对应分组)。

  3. 使用变量时要加 $ 前缀。