Linux命令——expr
前言
有时,在处理命令行时(特别是在处理shell脚本时),您可能会发现自己处于必须执行搜索字符串中的子字符串,查找其索引以及其他内容,或者执行比较和算术运算等情况。上述问题expr都能帮我们解决。
expr(evaluate expressions)
语法
expr EXPRESSION
expr OPTION
参数
--help:打印帮助信息并退出
--version:打印版本信息并退出
典型用法
使用expr进行算术操作
expr ARG1 + ARG2
expr ARG1 - ARG2
expr ARG1 * ARG2
expr ARG1 / ARG2
expr ARG1 % ARG2
root@ubuntu:~# expr +
+
root@ubuntu:~# expr -
-
root@ubuntu:~# expr *
*
root@ubuntu:~# expr / root@ubuntu:~# expr %
这里*需要特别注意下,由于*时shell内置操作符,所以expr计算乘法时需要转义
root@ubuntu:~# expr *
expr: syntax error
root@ubuntu:~# expr *
*
root@ubuntu:~# expr \*
*
root@ubuntu:~# expr \*
使用expr进行逻辑操作
注意:|、&、<、<=、!=都需要转义
ARG1 | ARG2
返回ARG1和ARG2中既不是null也不是0的哪个。如果ARG1和ARG2都满足要求,则返回第一个。
注意:|也需要使用转义
root@ubuntu:~# export a=
root@ubuntu:~# export b=
root@ubuntu:~# expr $a \| $b root@ubuntu:~# export a=
root@ubuntu:~# export b=
root@ubuntu:~# expr $a \| $b
ARG1 & ARG2
ARG1和ARG2都不是null 或 0时,返回ARG1。ARG1和ARG2中至少有一个时null 或 0时时,返回0
注意:&也需要使用转义
root@ubuntu:~# export a=
root@ubuntu:~# export b=
root@ubuntu:~# expr $a \& $b root@ubuntu:~# export a=
root@ubuntu:~# export b=
root@ubuntu:~# expr $a \& $b root@ubuntu:~# export a=
root@ubuntu:~# export b=
root@ubuntu:~# expr $a \& $b
ARG1 < ARG2
root@ubuntu:~# export a=
root@ubuntu:~# export b=
root@ubuntu:~# expr $a \< $b root@ubuntu:~# expr $b \< $a
ARG1 <= ARG2
root@ubuntu:~# export a=
root@ubuntu:~# export b=
root@ubuntu:~# expr $a \<= $b root@ubuntu:~# expr $a \<= $b+ root@ubuntu:~# expr $a \<= $b+
ARG1 = ARG2
root@ubuntu:~# export a=
root@ubuntu:~# export b=
root@ubuntu:~# expr $a = $b root@ubuntu:~# expr $a \= $b root@ubuntu:~# expr $a \= $b+ root@ubuntu:~# expr $a = $b+
这个还比较奇怪,=使用转义也可以,不使用也可以
ARG1 != ARG2
ARG1 >= ARG2
ARG1 > ARG2
使用expr进行字符串相关操作
expr命令还允许您执行多个与字符串相关的操作。例如,要查找字符串的长度,可以按以下方式使用该工具:
计算字符串长度
注:包含空格时需要转移
root@ubuntu:~# expr length hello root@ubuntu:~# expr length hello\ world
提取给定字符串中的子字符串
语法:expr substr [string] [pos] [length]
root@ubuntu:~# expr substr we\ are\ family
family
查找给定字符串中一组字符的起始位置
语法:expr index [string] [chars]
root@ubuntu:~# expr index RNG\ NB NG
Linux命令——expr的更多相关文章
- LINUX命令总结 -------来自 水滴娃娃 的CSDN
LINUX命令总结 标签: LINUX命令总结 2014-01-27 15:54 41039人阅读 评论(1) 收藏 举报 分类: linux(1) 版权声明:本文为博主原创文章,未经博主允许不得 ...
- linux shell expr 使用
linux shell expr 使用 收藏人:春秋百味 -- | 阅: 转: | | 分享 非原创, 摘自:<LINUX与UNIX Shell编程指南> 17.5 expr用法 expr ...
- Linux命令行技巧
Linux命令行技巧 命令 描述 • apropos whatis 显示和word相关的命令. 参见线程安全 • man -t man | ps2pdf - > man.pdf 生成一个PDF格 ...
- 【改造Linux命令之rm - 删除文件或目录-】
用途说明 rm命令是常用的命令,用来删除文件或目录(remove files or directories).它也是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比 ...
- linux 命令总结(转载)
linux 命令总结(转载) 1. 永久更改ip ifconfig eth0 新ip 然后编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改ip 2.从Lin ...
- 十年linux命令总结
十年linux命令总结 本文链接: http://codingstandards.iteye.com/blog/786653 关于命令类型划分 本表中列出了我穷尽了我所有的记忆整理出来的Linux命令 ...
- linux 命令中英文对照,收集
linux 命令中英文对照,收集 linux 命令英文全文 Is Linux CLI case-sensitive? The answer is, yes. If you try to run L ...
- [转帖]Linux命令中特殊符号
Linux命令中特殊符号 转自:http://blog.chinaunix.net/uid-16946891-id-5088144.html 在shell中常用的特殊符号罗列如下:# ; ;; . ...
- [转帖]50个必知的Linux命令技巧,你都掌握了吗?
50个必知的Linux命令技巧,你都掌握了吗? https://blog.51cto.com/lizhenliang/2131141 https://blog.51cto.com/lizhenlian ...
随机推荐
- LeetCode_258. Add Digits
258. Add Digits Easy Given a non-negative integer num, repeatedly add all its digits until the resul ...
- Delphi 中使用计算出的字段
在很多情况下,我们需要的数据与数据库中其它字段的数据相关,例如订单的金额为数量与单价的乘积.在应用程序中,若要在显示订单具体条目的同时显示金额,通常要创建一个字段,在显示该字段之前先进行乘法运算,将金 ...
- 【k8s secret token 删掉自动重建】kubernetes secret 和 serviceaccount
https://stackoverflow.com/questions/54354243/kubernetes-secret-is-persisting-through-deletes
- Amazon MWS Scratchpad
https://mws.amazonservices.com/scratchpad/index.html Use this page to test Amazon MWS API request an ...
- build时自动清除console
一.第一种方法 安装 babel-plugin-transform-remove-console 修改 babel.config.js 文件 let transformRemoveConsolePlu ...
- PHP提高in_array查找元素的方法
PHP提高in_array查找元素的方法<pre><?php$arr = array(); // 创建10万个元素的数组for($i=0; $i<100000; $i++){ ...
- 2019年春季学期《C语言程序设计II》课程总结
2019年春季学期<C语言程序设计II>课程总结 1.课程情况 教学内容 课堂小结 作业安排 优秀作业 备注 1.开学谈心 2.测验数据类型.运算符与表达式的自学情况,并讲解测验题目3.第 ...
- linux中硬盘分区、格式化、挂载
已经接触了小半年的linux,基本命令用的还行,就是涉及到深入操作,就显得不够看了,比如linux中的硬盘操作,于是整理了这篇博客. 1. 主分区,扩展分区,逻辑分区的联系和区别 一个硬盘可以有1 ...
- linux打印指定的行的内容
使用sed打印第99行 sed -n '99,p' test.txt 使用awk打印第99行 awk 'NR==99' test.txt awk 'FNR==99' test.txt perl 完成 ...
- 判断List集合为空还是null的正确打开方式
事故场景还原 最近在写一个项目的时候遇到一个这样一个问题,我简单的还原一下场景,这是模拟一个简单的管理系统 ① 一张简单的客户表 CREATE TABLE customer( id INT(11) N ...