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. weblogic启动问题

    昨天测试环境上网银系统突然出现启动weblogic控制台出错问题,执行startWebLogic.sh脚本后tail到nohup文件时没有反应,nohup.out文件一直没有反应.对于此问题同事想re ...

  2. Modified Kaprekar Numbers

    Link: https://www.hackerrank.com/challenges/kaprekar-numbers from __future__ import print_function d ...

  3. Silverlight js html 相互调用

    1.sl调用js 比如我们在页面中定义一个js函数: <script type="text/javascript">        function fnTest(ms ...

  4. mysql order by 妙用

    今天在做一个2次开发的时候,出现一个需求, 需要在商品分类页里面带一个参数,也就是商品ID, 如果分类链接里面有这个ID的时候就需要把这个商品排在分类商品列表的第1个, 原来的思路是,选择分类后,在P ...

  5. jquery 替换元素函数

    1.replaceWith()使用括号内的内容替换所选择的内容.$("#div").replaceWith("<div id="div2"> ...

  6. LeetCode_Palindrome Partitioning

    Given a string s, partition s such that every substring of the partition is a palindrome. Return all ...

  7. (转)open和fopen的区别:

    fopen与open的区别 open和fopen的区别: 1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓 ...

  8. 关于导入oracle10g的数据到sqlserver2005里的方案总结

    由于项目需求,现需要将oracle的数据全部导入到sqlserver中,一下算是自己的总结小计吧. sqlserver有自己的导入数据的功能,其中就有提供两种方式从oracle导入数据. 两种方式就不 ...

  9. elasticsearh 中每个节点中需要有相同的插件

    elasticsearh 中每个节点中需要有相同的插件 [2016-09-13 19:25:24,049][INFO ][discovery.zen ] [node02] failed to send ...

  10. thinkphp 一些常用写法

    多表查询: