Linux expr 命令介绍
expr 是expression(表达式)的缩写,它是一个用于执行数学运算的命令,除了支持基本的运算符外,expr 还支持逻辑运算和字符串处理功能。expr 命令在shell 脚本编程中广泛应用,特别是在需要进行数学计算或字符串处理的情况下。
Linux expr 命令适用的 Linux 版本
expr 命令在多数Linux发行版上都可使用,包括Ubuntu、Debian、CentOS等。如果在系统上未找到 expr 命令,可以使用下面的命令进行安装:
CentOS 7:
[linux@bashcommandnotfound.cn ~]$ sudo yum install coreutils
CentOS 8:
[linux@bashcommandnotfound.cn ~]$ sudo dnf install coreutils
Ubuntu/Debian:
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install coreutils
Linux expr 命令的基本语法
以下是 expr 命令的基本语法:
expr argument operator argument
Linux expr 命令的常用选项或参数说明
expr 命令没有特定的选项或参数,而是由一系列的数学或者逻辑操作符组成。这些操作符包括:
操作符 | 描述 |
---|---|
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
% | 取模 |
= , == , != , < , <= , > | 比较操作符 |
& | 逻辑与 |
| | 逻辑或 |
Linux expr 命令实例详解
实例1:使用expr进行加法运算
[linux@bashcommandnotfound.cn ~]$ expr 10 + 20
实例2:使用expr进行除法运算
[linux@bashcommandnotfound.cn ~]$ expr 30 / 3
实例3:使用expr判断字符串长度
[linux@bashcommandnotfound.cn ~]$ expr length "Hello World"
实例4:使用 expr 进行乘法运算
乘法运算时运算符 “*” 需要转义,否则会被 shell 理解为通配符。
[linux@bashcommandnotfound.cn ~]$ expr 10 \* 3
实例5:获取字符串的长度
使用 length 操作符,我们可以获取一个字符串的长度。
[linux@bashcommandnotfound.cn ~]$ expr length "expr command"
实例6:找出目标字符串在给定字符串中最后一次出现的索引
index 操作符可以帮我们完成这个操作。
[linux@bashcommandnotfound.cn ~]$ expr index "expr command" m
实例7:对字符串进行子串操作
substr 操作符可以返回指定索引开始的子字符串,第三个参数指定返回子字符串的长度。
[linux@bashcommandnotfound.cn ~]$ expr substr "expr command" 1 4
实例8:使用 expr 判断是否相等
我们可以使用 expr 来判断两个数是否相等。
[linux@bashcommandnotfound.cn ~]$ expr 2 = 2
实例9:求多个数的和
虽然 expr 是二元运算,但我们可以通过多次调用 expr 来实现多元运算。
[linux@bashcommandnotfound.cn ~]$ expr 2 + 3 + 5
实例10:求余数
我们可以使用 expr 得到两数相除的余数。
[linux@bashcommandnotfound.cn ~]$ expr 10 % 3
实例11: 比较两个数的大小
[linux@bashcommandnotfound.cn ~]$ expr 2 \> 1
[linux@bashcommandnotfound.cn ~]$ expr 2 \< 1
实例12: 使用 expr 命令模拟一个简单的计算器
[linux@bashcommandnotfound.cn ~]$ echo "Please enter two numbers:"
[linux@bashcommandnotfound.cn ~]$ read a b
[linux@bashcommandnotfound.cn ~]$ expr $a + $b
[linux@bashcommandnotfound.cn ~]$ expr $a - $b
[linux@bashcommandnotfound.cn ~]$ expr $a \* $b
[linux@bashcommandnotfound.cn ~]$ expr $a / $b
实例13:比较字符串是否相等
[linux@bashcommandnotfound.cn ~]$ expr "expr" = "expr"
实例14:比较字符串是否不相等
[linux@bashcommandnotfound.cn ~]$ expr "expr" != "command"
实例15:将字符串复制给变量并打印
[linux@bashcommandnotfound.cn ~]$ expr string1="Hello, expr!"
[linux@bashcommandnotfound.cn ~]$ echo $string1
实例16:除法运算并获取余数
[linux@bashcommandnotfound.cn ~]$ expr 10 / 4
[linux@bashcommandnotfound.cn ~]$ expr 10 % 4
实例17:比较两个数大小并返回结果
[linux@bashcommandnotfound.cn ~]$ expr 100 \> 50
[linux@bashcommandnotfound.cn ~]$ expr 100 \< 50
实例18:根据某个字符分割字符串
[linux@bashcommandnotfound.cn ~]$ expr "expr:command" : '\(.*\):.*'
[linux@bashcommandnotfound.cn ~]$ expr "expr:command" : '.*:\(.*\)'
实例19:判断字符串开始的几个字符是否匹配某个字符串
[linux@bashcommandnotfound.cn ~]$ expr "expr command and strings" : 'expr.*'
实例20:使用逻辑运算符
[linux@bashcommandnotfound.cn ~]$ expr 3 \> 2 \| 4 \< 3
[linux@bashcommandnotfound.cn ~]$ expr 3 \< 2 \& 4 \> 3
Linux expr 命令的注意事项
注意当执行乘法运算时,需要用反斜杠”\“转义运算符”*“,正确的运算方式应为”expr 2 * 3“。如果直接写为”expr 2 * 3“,则会出现 bash: expr: command not found 的错误,此时请按照上面的方法进行修复。
Linux expr相关命令
- bc命令:进行任意精度计算器语言的解释器
- awk命令:用于处理文本和数据
- sed命令:用于在文件或输入流中进行文本替换、插入、删除和搜索。
- cut命令:从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
- tr命令:用于删除文件中的字符,字符压缩以及字符类的转换。
- sort命令:用于对文件或其他输入进行排序,结果默认输出到标准输出。
- find命令:用于在目录层次结构中搜索和定位文件的列表,并采取相应的动作。
- grep命令:用于在输入中搜索模式的出现,输入通常是文件,也可以是来自管道的结果。
- wc命令:用于计算数字、字母、词数、行数等。
- cat命令:用于连接文件并打印到标准输出设备上。
- tail命令:在屏幕上显示文件的末尾部分。
- head命令:在屏幕上显示文件的顶部部分。