expr 可以进行的操作如下:

逻辑操作

arg1 | arg2 逻辑或操作,真则返回arg1,否则返回arg2(以null或者0来判断参数的真假,有短路功能)

arg1 & arg2 逻辑与操作,真则返回arg1,否则返回arg2(以null或者0来判断参数真假,有短路功能)

关系操作

arg1 = arg2(或者arg1 == arg2)相等返回1,不等返回0

arg1 != arg2 不等返回1,相等返回0

arg1 > arg2 大于返回1,否则返回0

arg1 >= arg2 大于等于返回1,否则返回0

arg1 < arg2 小于返回1,否则返回0

arg1 <= arg2 小于等于返回1,否则返回0

需要注意的是在关系操作附中,只有所有的参数都是数值才按数值比较,否则,按字典顺序比较

算数操作

arg1 + arg2

arg1 - arg2

arg1 * arg2

arg1 / arg2

arg1 % arg2

需要注意的是*在shell有其他意义,因此需要转义使用\*

字符串操作

STRING : REGEXP

1) REGEXP代表正则表达式,并且该表达式隐含带有^,即REGXP就是^REGEXP;

2) 如果REGEXP中没有\(和\),那么返回匹配的字符个数,或者完全不匹配返回0;如果带有\(或者\),那么就返回\(和\)包含的字符串,或者不匹配返回null

match STRING REGEXP

类STRING : REGEXP相同

substr STRING POSITION LENGTH

返回从POSITION(从1开始),长LENGTH的子字符串,如果POSITION和LENGTH为0,负数,或者非负数,那么返回null

index STRING CHARSET

CHARSET中可以包含多个字符,但是只是返回第一个在STRING中字符的位置,如果CHARSET中的字符都不在STRING中,那么返回0

length STRING

返回STRING的长度

+ TOKEN

将TOKEN解释为字符串,即使TOKEN是关键字,比如expr index index n,由于第二个index是expr语法的关键字,因此会报错,处理的方式就是如下处理:expr index + index n

所有上面表达式需要注意的是,操作符两边一定要有空格。

shell中的expr命令的更多相关文章

  1. linux shell 中的sleep命令

    开始还以为是这样的语法: sleep(1), 后面发现是: linux shell 中的sleep命令 分类: LINUX 在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小 ...

  2. Linux在shell中输入历史命令

    在Linux的shell中,经常输入的命令有很多雷同,甚至是一样的, 如果是长命令,再次敲一遍效率真的是很低, 不过可以通过Ctl+r,  查找history中以前输入的命令,很是好用. 按Ctrl+ ...

  3. 在shell中使用sed命令替换/为\/

    sed命令相关: https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html https://www.cnblogs.com/D ...

  4. shell中使用expect命令进行远程执行命令脚本

    expect是用来实现自动交互功能的工具之一,使用expect-send来实现交互过程. 注意: 1.脚本的执行方法与bash shell不一样,比如:expect example.sh 2.向一个脚 ...

  5. Shell 中的 expect 命令

    目录 expect 介绍 expect 安装 expect 语法 自动拷贝文件到远程主机 示例一 示例二 示例三 示例四 expect 介绍 借助 expect 处理交互的命令,可以将交互过程如 ss ...

  6. 常见linux命令释义(第九天)—— Bash Shell 的操作环境Shell 中的管道命令一些管道命令

    最近好懒好懒.连写文章都写不好了.于是只能写读一点书,记一点读书笔记了.太懒了,没办法.慢慢恢复自己的状态吧. 管道命令仅会处理strandard output 的内容,对于strandard err ...

  7. shell中的ps命令详解

    ps简介:Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的 ...

  8. shell中判断前一个命令是否执行成功

    ]; then echo "fail" else echo "success" fi 或者 ]; then echo "success" e ...

  9. shell中常用的命令方法

    <1>Linux Shell 脚本中字符串的连接方法 [root@localhost company]# var1=/etc/[root@localhost company]# var3= ...

随机推荐

  1. C#按键打开文件选择对话框,并把选择好的路径保存/显示到textBox

    1.选择文件夹 FolderBrowserDialog fbd = new FolderBrowserDialog(); fbd.SelectedPath = "D:";//默认路 ...

  2. BestCoder Round #36 (hdu5199)Gunner(水题)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud Gunner Time Limit: 8000/4000 MS (Java/Oth ...

  3. 五种实用DOM方法总结

    DOM:Document Object Model 文档对象模型 对象的三种类型:用户定义类型.内建对象.宿主对象 节点类型:元素节点.文本节点.属性节点 getElementById()方法: 将返 ...

  4. linux修改密码

    情景:Linux 服务器上用户的密码被服务器管理员发现太过简单,需要重置密码.处理时为了方便记忆,就直接使用普通用户登录,修改密码时,在原密码的基础上增加一串特定的数字,结果提示不通过.例如出现错误提 ...

  5. php解析json数组(循环输出数据)的实例

    以快递100接口为例 返回的JSON数据 {"message":"ok","nu":"350116805826",&qu ...

  6. Angular2 - Starter - Pipes, Custom Pipes

    在Angular2 模板中,我们在显示数据时,可以使用通道将数据转换成相应的格式的值的形式来显示,而且这不改变源数据.比如,我们可以使用date通道来转换时间显示的格式: {{date | date: ...

  7. C/C++ 指针的非空判断

    一定要分得清楚C和C++的“空指针常量”不是一样的.C标准不保证NULL等于0,所以做指针非空判断时,应该用if(p != NULL):因为“上下文转换到bool值”的统一性,C++就应该用if(p) ...

  8. 深入浅出Node.js (6) - 理解Buffer

    6.1 Buffer结构 6.1.1 模块结构 6.1.2 Buffer对象 6.1.3 Buffer内存分配 6.2 Buffer的转换 6.2.1 字符串转Buffer 6.2.2 Buffer转 ...

  9. web字体格式及几种在线格式转换工具介绍

    原文地址:http://blog.csdn.net/xiaolongtotop/article/details/8316554 目前,文字信息仍是网站最主要的内容,随着CSS3技术的不断成熟,Web字 ...

  10. 怎样合并排序数组(How to merge 2 sorted arrays?)

    Question: We have 2 sorted arrays and we want to combine them into a single sorted array. Input: arr ...