linux基础49——expr
1. 概念
expr(expression) 命令用于计算表达式的值。支持关系运算、算数运算、字符串匹配、截取、获取长度等相关运算。
只支持整数和字符串,不支持浮点数。若涉及浮点数的运算,可使用 bc 命令。
2. 语法
expr EXPRESSIONexpr OPTION
3. 选项说明
--help 显示帮助信息并退出--version 显示版本信息并退
4. 表达式说明
ARG1 | ARG2若 ARG1 的值不为 0 或者不为空,则返回 ARG1,否则返回 ARG2
ARG1 & ARG2若两边的值都不为 0 或都不为空,则返回 ARG1,否则返回 0
ARG1 < ARG2ARG1 小于 ARG2 返回 1 否则返回 0
ARG1 <= ARG2ARG1 小于或等于 ARG2 返回 1 否则返回 0
ARG1 = ARG2ARG1 等于 ARG2 返回 1 否则返回 0
ARG1 != ARG2ARG1 不等于 ARG2 返回 1 否则返回 0
ARG1 >= ARG2ARG1 大于或等于 ARG2 返回 1 否则返回 0
ARG1 > ARG2ARG1 大于 ARG2 返回 1 否则返回 0
ARG1 + ARG2计算 ARG1 与 ARG2 相加之和
ARG1 - ARG2计算 ARG1 与ARG2 相减之差
ARG1 * ARG2计算 ARG1 与ARG2 相乘之积
ARG1 / ARG2计算 ARG1 与 ARG2 相除之商,向下转换成整数
ARG1 % ARG2计算 ARG1 与ARG2 相除取余
STRING : REGEXP执行模式匹配。两端参数会转换为字符串格式,且第二个参数被视为正则表达式(GNU基本正则),它默认会隐含前缀"^"。随后将第一个参数和正则模式做匹配。如果匹配成功,且 REGEX 使用了 \( 和 \),则返回匹配到的内容,如果未使用 \( 和 \),则返回匹配的字符数。否则返回为 0
match STRING REGEXP等于 STRING : REGEXP
substr STRING POS LENGTH返回 STRING 中从 POS(从 1 开始) 开始长度最大为 LENGTH 的子串。如果 POS 或 LENGTH 为负数、0 或非数值,则返回空字符串
index STRING CHARSCHARS 中任意单个字符在 STRING 中最前面的字符位置。如果在 STRING 中完全不存在 CHARS 中的字符,则返回 0
length STRING字符串的长度
+ TOKEN将 TOKEN 解析为普通字符串,即使 TOKEN 是像 match 或操作符 / 一样的关键字
( EXPRESSION )表达式可以使用一对小括号括起来。注意表达式与括号间需要空格
注意:
(1)很多操作符需要进行转义,比如大于号在 Shell 中用于重定向,使用大于号时需要转义 >;
(2)如果两个参数都是数字,那么比较就是算术运算,否则就是字典序。
5. 示例
(1)整数的算数运算。
expr 1 + 1
2expr 1 - 1
0expr 1 * 1
1expr 1 / 2
0expr 1 % 2
1
(2)整数的关系运算。
expr 1 \< 1
0expr 1 \<= 1
1expr 1 \> 1
0expr 1 \>= 1
1expr 1 = 1
1expr 1 != 1
0
(3)字符串的关系运算。
expr "abc" \< "acb"
1
(4)执行模式匹配,获取匹配正则的字符串或其长度。
expr "abcd" : "\(.bc\)"
abc# 不使用小括号获取匹配正则的字符串的长度
expr "abcd" : ".bc"
3
(5)截取子串。
expr substr "abcd" 1 3
abc
(6)获取字符串长度。
expr length "abcd"
4
(7)将 expr 中具有特殊意义的关键字强制解析为普通字符串并获取其长度。
expr length + "length"
6
(8)使用小括号,使得 expr 支持多个表达式。
expr 1 + \( 1 + 1 \)
3
linux基础49——expr相关推荐
- 大数据之Linux 基础
Linux 基础 Linux 开始 虚拟机 Linux 准备工作 Linux 安装步骤 选择稍后安装 网络类型选择 NAT 修改最大磁盘大小(这里最大磁盘大小指给虚拟机分配的,但不真正使用不是这么多) ...
- 鸟哥的linux 实训教程,鸟哥的Linux基础学习实训教程
1.理想的Linux上机实践课程 每周一次.每次三小时的学与练 本书所有例题讲解,均经过鸟哥在大专院校实施多年来的测试,对于学生的理解具有相当满意的效果. 2. 提供一致性教学环境 让学习者不再有陌生 ...
- linux 基础 文件系统 用户权限
描述Linux系统的启动过程?1.开机自检 BIOS 2.MBR引导 3.GRUB菜单 4.加载内核 5.运行init进程 6.从/etc/inittab读取运行级别 7.根据/etc/rc.sysi ...
- linux 基础命令总结
1.mkdir 创建目录 -p 创建多级目录 mkdir -p /data/test -m, --mode=模式 设置权限模式(类似chmod),而不是rwxrwxrwx 减umask -p, --p ...
- LINUX基础知识笔记全
LINUX基础知识整理 1.Linux 基本知识 2.Linux 文件和目录管理 vim scp sftp 压缩和归档 文件访问权限 脚本 3.Linux 用户和群组管理 sudo ssh opens ...
- OracleOCP认证 之 Linux基础
Linux 基础 一.SHELL 1: Shell 简介 shell 是用户和Linux 操作系统之间的接口.Linux 中有多种shell, 其中缺省使用的是bash. Linux 系统的shell ...
- Linux基础命令-进程与系统性能
Linux基础命令-进程与系统性能 进程与系统性能 一.进程相关概念 1.进程概念 2.进程的基本状态和转换 3.IPC进程间通信 4.进程优先级 5.进程状态 二.进程与系统性能 1.系统管理工具 ...
- LINUX基础试题大全(2)
说明:此文章由于题数庞大,为方便阅读本人将其分为四篇文章为大家分享!答案会今后不断进行更新! LINUX基础试题大全(1)填空题题 LINUX基础试题大全(2)单项选择题 LINUX基础试题大全(3) ...
- Linux基础入门教程
Linux基础入门教程 --------- Linux学习路径 Linux学习者,常常不知道自己改怎么学习linux: Linux初级,也就是入门linux 前提是需要有一些计算机硬件相关的知识或是有 ...
最新文章
- usaco Calf Flac(O(n)时间求回文串长度)
- $_server[#039;php_auth_user#039;],找不到’./mysql/user.MYD#039;(错误代码:13 – 权限被拒绝)...
- 建立UDP到虚拟串口的映射软件 : USR-VCOM,并应用到WiFi调试ESP32
- 块状元素的text-align对齐属性
- 对话jQuery之父John Resig:JavaScript的开发之路
- 带有API网关的AWS Lambda
- Java面试之锁-自旋锁
- 3.2_栈_链式存储结构(链表形式)
- 手机usb计算机无法连接,手机用USB无法连接电脑怎么办
- ASP.NET调用WCF服务
- Web服务器常用分类
- adc0809工作过程C语言,ADC0809引脚图、时序图、工作流程图详解
- 在java中获取X.509证书微缩图的方法
- express实现上传图片到七牛云
- 字符集详解(一看就懂系列)
- python中pd是什么意思_python pd
- React 项目兼容低版本浏览器
- Trajectory generation for quadrotor while tracking a moving target in cluttered environment
- Java之------常用的设计模式
- python爬虫遇到验证码、输入验证码后提醒验证码错误_爬虫遇到头疼的验证码?Python实战讲解弹窗处理和验证码识别...
热门文章
- php搜索引擎的数据哪里来,PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)...
- FeelUOwn音乐播放器的一点点研究
- 小球吃金币unity教程_Unity实验一 ---吃小球游戏
- Android开发精典案例60个
- 每天读一点儿APM(PIX)代码之四:minimosd
- [附源码]SSM计算机毕业设计网上书店管理系统JAVA
- Nginx漏洞修复之目录穿越(目录遍历)漏洞复现及修复
- Proteus中添加arduino元件库
- 虚拟紫禁城,你玩过吗?
- dock是什么意思?