expr命令的一些用法
expr是evaluate expressions的缩写,我的理解它的作用就是用来输出表达式的值。
看下面的几个例子。
(1)进行数值运算
$:expr 1 + 2 //'+' 左右两边必须有空格
3
(2)获取字串的长度
$:expr length "abcdef"
6
(3)模式匹配
格式:expr STRING : REGEXP
$:expr 'abc.c' : '\(.*\).c'
abc
上面的例子可以匹配到abc,但要注意三点,
1.'\(.*\).c' 需要加引号,如果写成 \(.*\).c 就匹配不到。'abc.c'加不加引号都可以,
但如果'abc.c'这个字串中有空格,一定要加引号,看下面的例子,
$:expr abc.c ef.p : "\(.*\).c"
expr: syntax error
所以最好都加引号,肯定不会错,为什么\(.*\).c 不加引号就匹配不到,我不知道。
2.'\(.*\).c' 匹配必须是 .* ,只写 *匹配不到东西,*代表匹配前面的字符零或多次,
. 代表'\r\n'外的任意单个字符。
3.expr模式匹配的返回值是\( 和 \)中的部分匹配到的字符,如果没有写\( \),那返回
匹配到的字符的个数
看下面的例子:
$:expr 'abc.c' : '.*.c' //匹配到abc.c
5
$:expr "abc.c" : '..c' //匹配到c.c
3
上面的例子匹配表达式中没有\( \),返回匹配到的字串中字符的个数。
下面写一个小例子,利用expr来打印当前执行的脚本的名字,如果当前文件是一个链接文件,
就打印该链接指向的文件的名字。
脚本如下:
#!/bin/bash
link=`ls -l "$0"`
file=`expr "$link" : '.* -> \(.*\)$'`
if [ "$file" = "" ]
then
echo $0
else
echo $file
fi
创建了一个软链接指向该脚本,运行软链接,发现是可以打印该连接指向的文件的名字。
expr还有其他的用法,man expr查看去吧。
expr命令的一些用法的更多相关文章
- 【转】linux expr命令参数及用法详解
在抓包过程中,查看某个设定时间内,数据上下行多少,用命令expr 计算! --------------------------------------------------------------- ...
- (转)linux expr命令参数及用法详解
linux expr命令参数及用法详解 原文:http://blog.csdn.net/tianmohust/article/details/7628694 expr用法 expr命令一般用于整数值, ...
- linux expr命令参数及用法详解
expr用法 expr命令一般用于整数值,但也可用于字符串.一般格式为: #expr argument operator argument expr也是一个手工命令行计数器. #$expr 10 + ...
- expr 命令
求表达式变量的值.expr 命令读入 Expression 参数,计算它的值,然后将结果写入到标准输出. 用法:expr Expression Expression 参数规则: 用空格隔开每个项. 用 ...
- linux下数学运算器:expr命令(shell中完成数学运算)
expr用法 expr命令一般用于整数值,但也可用于字符串.一般格式为: expr argument operator argument expr也是一个手工命令行计数器. $expr 10 ...
- SHELL脚本--expr命令全解
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html expr命令可以实现数值运算.数值或字符串比较.字符串匹配.字 ...
- Linux之expr命令详解
expr命令: expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串. –格式为: expr Expression(命令读入Expressi ...
- linux之expr命令
expr命令可以实现数值运算.数值或字符串比较.字符串匹配.字符串提取.字符串长度计算等功能.它还具有几个特殊功能,判断变量或参数是否为整数.是否为空.是否为0等. 先看expr命令的info文档in ...
- expr命令使用
转载:http://www.cnblogs.com/f-ck-need-u/p/7231832.html expr命令可以实现数值运算.数值或字符串比较.字符串匹配.字符串提取.字符串长度计算等功能. ...
随机推荐
- flash 居中问题
如果舞台是1000的宽度,要剧中比较容易 mc1.x = (1000-400)/2; 这样就居中了,来看原理,首先我们要舞台居中,很容易就想到一个数字 1000/2 结果是500 但是x对舞台的中央是 ...
- LayaAir引擎——(八)
var a = new Array(); var b = new Array(); var ksjmCursor = 0; function ksjminit() { ksjminitName(); ...
- eclipse搭建servlet项目
1.创建web项目 2.勾选Generate web.xml 3.创建Class文件并实现Servlet接口 当搜索Servlet接口时,如果未发现接口则Add library→选择tomcat版本至 ...
- 关于 Record & TList 的一点吐槽
需求是把record 保存在TList中,并可以随时改变TList中Items的各项值. 代码很简单: MyRec = record MyStr: string; constructor Create ...
- K-Means 聚类算法原理分析与代码实现
前言 在前面的文章中,涉及到的机器学习算法均为监督学习算法. 所谓监督学习,就是有训练过程的学习.再确切点,就是有 "分类标签集" 的学习. 现在开始,将进入到非监督学习领域.从经 ...
- javascript数组 去重
数组去重的方法有很多,到底哪种是最理想的,自己不清楚.于是自己测试了下数组去重的效果和性能.测试十万个数据,代码和所耗大概时间如下. 到底采用哪种方法,根据实际情况而定吧. /*方法一: 1,'1' ...
- 行列式计算(C#)
最近几天学习高等代数老师说要写个程序算行列式的结果,闲来无事就简单写了一下. 不多说了,上代码 using System; using System.Collections.Generic; usin ...
- ionic slidebox 嵌套问题
ionic slidebox 嵌套 会有一个 冒泡 事件 , 即使是 阻止了 父级冒泡也不管用 , 最终 用 滑动 事件on-drag="drag()" 去阻止 了父级的 滑 ...
- 补交作业——Beta发布评论
1.飞天小女警: 礼物挑选这一项目是很好的点子,比较能够吸引客户,更加方便快捷的挑选也满足现代人在送礼物方面的需求.这一次的发布界面效果好了很多,并且成功的发布到了云服务器上. 2.nice! : 这 ...
- cocos2dx 3.2 Touch Listen和menu回调实现截屏
在Cocos2d-X 3.x里面,已经集成了截屏功能,单独放在utils命名空间里,实现在base/ccUtils.h文件里面.看下函数申明 /** Capture the entire screen ...