expr 命令行计算器

作用

expr 命令是一个手工命令行计算器,用于在 UNIX/LINUX 下求表达式变量的值,一般用于整数值,也可用于字符串。

语法

expr EXPRESSION
expr OPTION

参数

  • --help  显示帮助信息且退出

  • --version 显示版本信息且退出

将 EXPRESSION 的值打印到标准输出。下面使用空行将优先不同的符号进行分组,优先级别递增。EXPRESSION 取值:

ARG1 | ARG2       如果它既不是null也不是0,则为ARG1,否则为ARG2

ARG1 & ARG2       如果两个参数都不是null或0,则为ARG1,否则为0

ARG1 < ARG2       ARG1小于ARG2

ARG1 <= ARG2      ARG1小于或等于ARG2

ARG1 = ARG2       ARG1等于ARG2

ARG1 != ARG2      ARG1不等于ARG2

ARG1 >= ARG2      ARG1大于或等于ARG2

ARG1 > ARG2       ARG1大于ARG2

ARG1 + ARG2       ARG1和ARG2的算术和

ARG1 - ARG2       ARG1和ARG2的算术差

ARG1 * ARG2       ARG1和ARG2的算术乘积

ARG1 / ARG2       ARG1除以ARG2的算术商

ARG1 % ARG2       ARG1除以ARG2的算术余数

STRING : REGEXP   STRING中REGEXP的固定模式匹配

match STRING REGEXP        与 STRING : REGEXP 相同

substr STRING POS LENGTH   STRING的子串,POS从1开始计算

index STRING CHARS         在STRING中找到任何CHARS的索引,或 0

length STRING              STRING的长度

+ TOKEN                    将TOKEN解释为一个字符串,即使它是一个像'match'这样的关键词或像'/'这样的运算符。

( EXPRESSION )             EXPRESSION 的值

请注意,许多运算符需要转义或加引号,以便用于 shell。如果两个 ARG 都是数字,则进行算术比较,否则进行字典比较。

模式匹配返回在 \(和 \) 之间匹配的字符串或空;如果没有使用 \( 和 \) ,则返回匹配的字符数或 0。

如果 EXPRESSION 既不是空也不是0,则退出状态为 0;如果EXPRESSION 为空或 0;如果 EXPRESSION 在语法上无效,则为 2;如果发生错误,则为 3。

示例

(1)计算字串长度

hxstrive@localhost:~$ expr length "hello world"
11

(2)截取子字符串,从第 7 个字符开始,截取 5 个字符

hxstrive@localhost:~$ expr substr "hello world" 7 5
world

(3)抓取第一个字符数字串出现的位置

hxstrive@localhost:~$ expr index "hello world" w
7

(4)整数运算

hxstrive@localhost:~$ expr 14 % 9
5
hxstrive@localhost:~$ expr 10 + 10
20
hxstrive@localhost:~$ expr 30 / 3 / 2
5
# 使用乘号时,必须用反斜线屏蔽其特定含义。因为 shell 可能会误解显示星号的意义
hxstrive@localhost:~$ expr 30 * 3
expr: syntax error: unexpected argument ‘demo’
hxstrive@localhost:~$ expr 30 \* 3
90

更多关于命令详细参考手册,请使用 man 命令或者 --help 参数获取帮助信息

关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号