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命令可以实现数值运算.数值或字符串比较.字符串匹配.字符串提取.字符串长度计算等功能. ...
随机推荐
- 关于JAVA中对字符串与数组求长度的问题
我在学习中发现在求数组或者字符串的长度的时候,用到length的时候,有时候是length,有时候是length(),很是奇怪,于是上API查了一下,发现一些小细节. 首先看看这段代码 public ...
- HDU 5113 dfs剪枝
题意:告诉格子规格,颜色个数,以及每个颜色能涂得格子数目,问是否能够实现相邻两个格子的颜色数目不相同. 分析:因为数据很小,格子最多是5 * 5大小的,因此可以dfs.TLE了一次之后开始剪枝,31m ...
- 探索软件工程道路上的我III (Θ∀Θ#)
github地址:https://github.com/JUNYU217/2016-03-08 开发语言:Java 开发工具:UltraEdit || 为月末了,网费欠了...很抱歉的拖了那么久的作业 ...
- dreamweaver快捷键
---恢复内容开始--- 件菜单 新建文档 Ctrl+N 打开一个 HTML文件 Ctrl+O或者将文件从[文件管理器]或[站点]窗口拖动到[文档]窗口中 在框架中打开 Ctrl+Shift+O 关闭 ...
- poj1741 (点分治)
Problem Tree 题目大意 给一棵树,有边权.求树上距离小于等于K的点对有多少. 解题分析 点分治.对每一棵子树进行dfs,求出每棵子树的重心,继而转化为子问题. 对于经过根的路径i--j,令 ...
- AIX上通过IPSEC进行IP包过滤
AIX上的IPSEC 在AIX可以通过以下步骤打开IP Security smitty ipsec4 --> Start/Stop IP Security --> Start IP Sec ...
- php查询文件扩展名
//查询文件扩展名 function extension($str){ $str = implode("",explode("\\",$str)); $str ...
- some simple recursive lisp programs
1. Write a procedure count-list to count the number of elements in a list (defun count-list (numbers ...
- Hibernate配置log4j日志环境
1.准备所需的jar 说明:具体所使用的jar包的版本与你所使用的Hibernate版本有关,我用的是(hibernate-release-4.3.11.Final) <1>准备slf4j ...
- JTree使用
package JTree; import java.awt.Component; import javax.swing.Icon; import javax.swing.JTree; import ...