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. type和instance

    获取对象类型 type(object) >>> test_data = [1, 2, 3] >>> type(test_data) <type 'list'& ...

  2. centos下安装cdh5

    http://www.aboutyun.com/thread-9075-1-1.html 基本参考这个   yum clean all yum update     1.保证selinux关闭  /e ...

  3. 省队集训day6 C

    Description 给定平面上的 N 个点, 其中有一些是红的, 其他是蓝的.现在让你找两条平行的直线, 使得在保证    不存在一个蓝色的点 被夹在两条平行线之间,不经过任何一个点, 不管是蓝色 ...

  4. C# RGB与16进制颜色转换方法

    http://www.cnblogs.com/goldarch/archive/2010/08/16/1801053.html #region [颜色:16进制转成RGB]        /// &l ...

  5. express+jade+bootstrap+mongdb simple CRUD test

    1:当前环境 y@y:~$ node --version && express -V && mongo --version v0.12.2 MongoDB shell ...

  6. 从MVC框架看MVC架构的设计(转)

    尽管MVC早已不是什么新鲜话题了,但是从近些年一些优秀MVC框架的设计上,我们还是会发现MVC在架构设计上的一些新亮点.本文将对传统MVC架构中的一些弊病进行解读,了解一些优秀MVC框架是如何化解这些 ...

  7. angular学习地址

    在网上收集了angular.js的网站,不错,收集收集 http://www.ituring.com.cn/minibook/303 http://www.zouyesheng.com/angular ...

  8. 开源src镜像

    开源src镜像: http://download.savannah.gnu.org/releases/

  9. 本地apt

    Ubuntu建立本地源非常實用,很多服務器在局域網沒有網络或者網络很慢的情況下,或者需要批量安裝同样的軟件的時候,如果每一台服務器都去外網下載,是不是很慢,而且也不是一個運維工程師願意這麼幹的!那有什 ...

  10. Java实现文件的预览

    最近项目需要用到文件的预览功能,就开始在网上收集资料,学习了几种文件预览的方法.我集成到我项目内测试的有以下三种,最后使用的是第三种: 直接使用别人提供的服务 例如:office web 365 使用 ...