【Shell】计算命令
目录
expr
命令详解#
expr (evaluate expressions 的缩写),译为“表达式求值”。Shell expr 是一个功能强大,并且比较复杂的命令,它除了可以实现整数计算,还可以结合一些选项对字符串进行处理,例如计算字符串长度、字符串比较、字符串匹配、字符串提取等.
-
求值表达式(整数)#
-
字符串语法#
-
计算字符串的长度语法
expr length 字符串
#expr length 字符串 # 例如: expr length "itheima" 返回: 7
-
截取字符串语法
expr substr 字符串 start end
#expr substr 字符串 start end # start 截取字符串的起始位置, 从1开始 # end 截取字符串的结束位置, 包含这个位置截取 # 例如 expr substr "itheima" 1 2 返回: it
-
获取第一个字符在字符串中出现的位置语法
expr index 被查找字符串 需要查找的字符
#expr index 被查找字符串 需要查找的字符 # 例如 expr index "itheima" t 会返回: 2
-
正则表达式匹配1语法
expr match 字符串 正则表达式
#expr match 字符串 正则表达式 # 正则表达式默认带有^ , 代表以什么开头 # 返回值为符合匹配字符的长度, 否则返回为0 # 例如: expr match "itheima" ".*m" 会返回: 6 # 正则表达式通配符"."代表任意一个字符 # 正则表达式通配符"*"代表签名的字符可以出现0到多次 # ".*m" 含义为匹配字符串中m前面的字符串长度
-
正则表表达式匹配2语法, 功能与语法1一样
expr 字符串 : 正则表达式
#expr 字符串 : 正则表达式 # 正则表达式默认带有^ , 代表以什么开头 # 返回值为符合匹配字符的长度, 否则返回为0 # 例如: expr "itheima" : ".*m" 会返回: 6
-
-
演示:#
# 四则运算: ( 10 + 10 ) * 2 + 100 # 计算"itheima"字符串的长度 # 获取"itheima"字符串中"t"第一个字符在字符串中出现的位置 # 正则表达式match匹配查找itheima字符串中m前面任意字符的总长度
#!/bin/bash # 四则运算 result=`expr \( 10 + 10 \) \* 2 + 100` echo "(10+10)*2+100=${result}" # 计算字符串的长度 echo "itheima字符串长度=`expr length "itheima"`" # 获取第一个字符在字符串中出现的位置 echo "itheima字符串中第一个t的位置=`expr index "itheima" t`" # 正则表达式匹配1 echo "正则表达式match匹配查找itheima字符串中m前面任意字符的总长度=`expr match "itheima" ".*m"`" # 正则表达式匹配2 echo "正则表达式匹配查找itheima字符串中m前面任意字符的总长度=`expr "itheima" : ".*m"`"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)