expr命令
是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串。
–格式为:
expr expression_r(命令读入Expression 参数,计算它的值,然后将结果写入到标准输出)
–参数应用规则:
用空格隔开每个项;
用 \ (反斜杠) 放在 shell 特定的字符前面;
对包含空格和其他特殊字符的字符串要用引号括起来
match String1 String2 与 Expression1 : Expression2 相同。
length String1 返回 String1 的长度。
index String1 String2 返回 String1 中包含 String2 中任意字符的第一个位置。
substr String1 StartPosition Length
                          返回一个以 StartPosition 的字符开始的在 String1 中的字符串,并且是 Length 长度的字符串。
expr运算符
e1 | e2 或
e1 & e2 与
e1 = e2 等于
e1 != e2 不等于
e1 < e2 小于
e1 <= e2 小于或等于
e1 > e2 大于
e1 >= e2 大于或等于
e1 + e2  加
e1 - e2  减
e1 * e2 相乘
e1 / e2 e1除以e2后的整数结果(截断)
e1 % e2 e1除以e2后的余数
e1 : e2 e1与e2的BRE匹配
integer 一个只包含数字的数目,允许前置负号,却不支持一元的正号
string 字符串值,不允许被误用为数字或运算符
 
expr用法实例讲解:
  计算字串长度
  expr length “this is a test”
  14
  抓取字串
  expr substr “this is a test” 3 5
  is is
  抓取第一个字符数字串出现的位置
  expr index “sarasara”  a
  2
  字串真实重现
  expr quote sara
  sara
  整数运算
  expr 14 % 9
  5
  expr 10 + 10
  20
  expr 1000 + 900
  1900
  expr 30 / 3 / 2
  5
  expr 30 \* 3 (使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解  显示星号的意义)
  90
 expr 30 * 3
 expr: Syntax error
 增量计数
 说明:expr在循环中用于增量计算。先将变量初始化为0,然后循环值加1,反引号的用法为命令替代。
  LOOP=0
  LOOP=`expr $LOOP + 1`
  数值测试
  说明:用expr测试一个数。如果试图计算非整数,则会返回错误。
  rr=3.4
  expr $rr + 1
  expr: non-numeric argument
  rr=5
  expr $rr + 1
  6
  模式匹配
说明:expr也有模式匹配功能。可以使用expr通过指定冒号选项计算字符串中字符数。.*意即任何字符重复0次或多次。
  VALUE=account.doc
  expr $VALUE : ‘.*’
  8
在expr中可以使用字符串匹配操作,这里使用模式抽取.doc文件附属名。
$expr $VALUE : ‘\(.*\).doc’
accounts

expr的简单应用的更多相关文章

  1. linux代码笔记

    sudo passwd root更新root密码 软件包管理及shell命令_deb软件包管理一_笔记:dpkj -i 安装dpkj -r 移除dpkj -P 全部移除dpkj -L 列出安装清单dj ...

  2. [Hive]使用 Antlr 开发领域语言

    Antlr 简介 ANTLR 语言识别的一个工具 (ANother Tool for Language Recognition ) 是一种语言工具,它提供了一个框架,可以通过包含 Java, C++, ...

  3. shell编程实战总结

    最近复习一下shell,顺便高级进阶一下,之前写脚本能简单尽量简单来,发现好多高深的东西还是没有理解,因此在这里记录一下整个过程并做相应的总结. 通过上代码的方式来介绍,后续可能会调整相应的排版 1. ...

  4. Python 之父的解析器系列之五:左递归 PEG 语法

    原题 | Left-recursive PEG grammars 作者 | Guido van Rossum(Python之父) 译者 | 豌豆花下猫("Python猫"公众号作者 ...

  5. 利用ANTLR4实现一个简单的四则运算计算器

    利用ANTLR4实现一个简单的四则运算计算器 ANTLR4介绍 ANTLR能够自动地帮助你完成词法分析和语法分析的工作, 免去了手写去写词法分析器和语法分析器的麻烦 它是基于LL(k)的, 以递归下降 ...

  6. js制作简单的计算器

    学着做了一个简单的计算器!记录记录!哈哈 <!DOCTYPE html> <html> <head> <title>简单的计算器</title&g ...

  7. iOS-----用LLDB调试,让移动开发更简单(二)

    image lookup –address 当我们有一个地址,想查找这个地址具体对应的文件位置,可以使用image lookup --address,简写为image lookup -a e.g: 当 ...

  8. iOS---用LLDB调试,让移动开发更简单(一)

    因文章字数超过限制,所以拆分成了上下篇 LLDB的Xcode默认的调试器,它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能.平时用Xcode运行程序,实际走的都是LLDB.熟练使用 ...

  9. zepto-selector.js简单分析

    zepto 的selector模块是对jquery扩充选择器(jquery-selector-extensions)的部分实现.比如这样的选择方法:$('div:first') 和 el.is(':v ...

随机推荐

  1. Dapper中使用存储分页。

    #region 分页获取数据 /// <summary> /// 分页获取数据 /// </summary> /// <typeparam name="T&qu ...

  2. standing

    2bc*cosA=b^2+c^2-a^2 #include<cstdio> #include<cstring> #include<iostream> #includ ...

  3. python中如何用sys.excepthook来对全局异常进行捕获、显示及输出到error日志中

    使用sys.excepthook函数进行全局异常的获取. 1. 使用MessageDialog实现异常显示: 2. 使用logger把捕获的异常信息输出到日志中: 步骤:定义异常处理函数, 并使用该函 ...

  4. 转:视觉中国的NoSQL之路:从MySQL到MongoDB

    起因 视觉中国网站(www.chinavisual.com)是国内最大的创意人群的专业网站.2009年以前,同很多公司一样,我们的CMS和社区产品都构建于PHP+Nginx+MySQL之上:MySQL ...

  5. infinite-scroll插件无限滚动加载数据的使用

    网上对于infinite-scroll插件使用的例子不多.但由于它的出现,鼓吹了瀑布流形式的页面展示方式,所以不得不了解了解这种新的分页方式. 官网上有对infinite-scroll的详细描述,但一 ...

  6. LVS+PIRANHA测试

    有一个知识盲点,是这个VIP,在四个服务器上都要设置? 现在只测试了两个机器,REAL SERVER没有开动. 如果LVS和REALSERVER都可以停一个作互切的话,那KEEPALIVED要它他什么 ...

  7. intel集成显卡linux驱动安装

    https://01.org/linuxgraphics/documentation/build-guide-0 https://01.org/linuxgraphics/community/mesa ...

  8. 【转】Unable to execute dex: Java heap space 解决方案(如何为eclipse.int 添加内存)

    原文网址:http://blog.csdn.net/zengyangtech/article/details/7003379 欢迎转载,转载请注明 http://blog.csdn.net/zengy ...

  9. Linux下的getline函数

    最近在做国嵌的mp3项目,在mp3主控程序中用到了这个函数,挺好使的,在这里记录一下.注意是linux下的,不是C++中的. 函数原型 ssize_t getline(char **lineptr, ...

  10. Java学习日记-10 集合

    集合(Collection) 1. 什么是集合? 集合是一组对象组成的一个整体,又称为容器,集合类属于java.util包.集合不同于数组的地方在于,一是它的容量是可变的,二是集合中只能存储对象,不能 ...