约 5218 字

约 26 分钟

#Bash 的 expr 命令

expr EXPRESSION

功能

计算表达式。

类型

可执行文件(/usr/bin/expr),属于 coreutils。

参数

  • EXPRESSION 表达式:
    • ARG1 | ARG2 - 如果 ARG1 不是 0 或 null,则结果为 ARG1,否则为 ARG2
    • ARG1 & ARG2 - 如果 ARG1 和 ARG2 都不是 0 或 null,则结果为 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 开始)截取长度为 LENGTH 的子串
    • index STRING CHARS - 从字符串 STRING 中查找 CHARS 中任意字符首次出现的位置,找不到则得到 0
    • length STRING - 获取字符串 STRING 的长度
    • ( EXPRESSION ) - 括号嵌套表达式
  • OPTION 选项:
    • --help - 显示帮助
    • --version - 显示版本

#示例

$ expr 1 '>' 3                     # 判断大于
0
$ expr 1 + 1                       # 加法
2
$ expr 2 - 3                       # 减法
-1
$ expr 10 / 3                      # 除法
3
$ expr 10 % 3                      # 取余
1
$ expr length primers              # 获取 primers 的长度
7
$ expr index primers aeiou         # 在 primers 中查找 aeiou 中的任意一个字符位置
3
$ expr substr primers 3 3          # 从 primers 中 3 位置截取长度为 3 的子串
ime
$ expr match 'https://xplanc.org/primers/' 'https\?://[^/]*/\(.*\)'
primers/

#推荐阅读

#手册

更新: 2026/1/18

作者: PlanC

创建: 2025/11/16