root@tcx4440-03:~# var=$var+1
root@tcx4440-03:~# echo $var
3+1

要想达到预期结果,用下列三种方法:

(1)let "var+=1"

(2)var=$[$var+1]

(3)var=`expr $var + 1`#注意加号两边的空格,否则还是按照字符串的方式赋值。

expr命令一般用于整数值,但也可用于字符串。一般格式为:
expr argument operator argument

(1)
root@tcx4440-03:~# expr 30 + 30
60
root@tcx4440-03:~# expr 30 \* 2
60

(注意运算符左右都有空格
,如果没有空格表示是字符串连接)
使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义。

(2)

这里需要将一个值赋予变量(不管其内容如何),进行数值运算,并将输出导入dev/null,
然后测试最后命令状态,如果为0,证明这是一个数,其他则表明为非数值。
$value=12
$expr $value + 10 > /dev/null 2>&1
$echo $?
0
这是一个数。
$value=hello
$expr $value + 10 > /dev/null 2>&1
$echo $?
2
这是一个非数值字符。

expr也可以返回其本身的退出状态,不幸的是返回值与系统最后退出命令刚好相反,成
功返回1,任何其他值为无效或错误。下面的例子测试两个字符串是否相等,这里字符串为
“hello”和“hello”。
$value=hello
$expr $value = "hello"
1
$echo $?
0

expr返回1。不要混淆了,这表明成功。现在检验其最后退出状态,返回0表示测试成功,
“hello”确实等于“hello”。

(3)expr 的字符串操作

提取指定字符的下标:expr index 内容 字符,例如:$ind=`expr index "$content" "="` (获取字符下标)

提取字符串的子串:expr substr 内容 起始位置 字符个数,例如:$con=`expr substr "$content" "1" $ind (通过下标获取字符串)

root@tcx4440-03:~# var=helloword

root@tcx4440-03:~# expr substr $var 2 5
ellow

root@tcx4440-03:~# tmp=`expr index $var o`
root@tcx4440-03:~# echo $tmp
5
root@tcx4440-03:~# echo $var
helloword

(4)字串真实重现,与echo相似

root@tcx4440-03:~# echo dfdfd
dfdfd
root@tcx4440-03:~# expr dddd
dddd

(5)计算字符串的长度

root@tcx4440-03:~# expr length "abc"
3

root@tcx4440-03:~# var=helloworld
root@tcx4440-03:~# expr length $var
10

(6)expr的模式匹配,

说明:expr也有模式匹配功能。可以使用expr通过指定冒号选项计算字符串中字符数。
.* 意即任何字符重复0次或多次。

root@tcx4440-03:~# var=document.doc

root@tcx4440-03:~# expr $var : '.*'
12

(7)在expr中可以使用字符串匹配操作,这里使用模式抽取.doc文件附属名。注意:需要用反斜杠对()进行转义,同时注意空格

root@tcx4440-03:~# expr $var : '\(.*\).doc'
document

shell expr的用法的更多相关文章

  1. Shell expr的用法 bc 命令 let命令

    Shell expr的用法  bc 命令   let命令 数学运算 let命令  expr命令  bc命令  $(())   $[] http://www.80ops.cn/archives/245. ...

  2. shell expr用法

    expr 计算整数变量值 使用方法如下: linux-zpycfm:/home/test/shell # s=+ -bash: +: command not found linux-zpycfm:/h ...

  3. linux shell expr 使用

    linux shell expr 使用 收藏人:春秋百味 -- | 阅: 转: | | 分享 非原创, 摘自:<LINUX与UNIX Shell编程指南> 17.5 expr用法 expr ...

  4. 一点一滴学shell-Shell expr的用法 (转)

    原文链接:http://desheng666.blog.163.com/blog/static/4908408220121643953425/ expr命令一般用于整数值,但也可用于字符串.一般格式为 ...

  5. hbase基本概念和hbase shell常用命令用法

    1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实 ...

  6. 【转载】HBase基本概念和hbase shell常用命令用法

    1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实 ...

  7. shell字符串的用法

    shell字符串的用法 注意:shell4.2和shell4.1会有差别,较低版本的shell可能不支持某些功能 获取字符串长度:${#string} 获取子串: 注:(左边的第一个字符是用 0 表示 ...

  8. centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课

    centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和$ ...

  9. (12)Linux shell之read 用法

    Linux shell之read 用法 #!/bin/bash#read 用来读取屏幕输入或是读取文件内容.read -p  "please input you  name: " ...

随机推荐

  1. CentOS7.2安装总结

    第一次自己写文章,想想还有点小激动呢.折腾了大半天,终于在一个没用的台式机上面装了个mini版的CentOS7.2.写这篇文章也是做个记载,要是以后再装要注意了. 一.安装过程 采用U盘安装.最初是准 ...

  2. hdu-5834 Magic boy Bi Luo with his excited tree(树形dp)

    题目链接: Magic boy Bi Luo with his excited tree Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: ...

  3. [3D跑酷] UI事件处理系统

    在我们的Unity游戏项目中,GUI的表现采用NGUI.记录一下我们的处理方式: 需要解决的问题 1.需要处理大量按钮的点击事件 2.需要处理界面跳转事件 3.需要处理界面元素更新事件 解决方案 GU ...

  4. 本地不安装Oracle,plsql远程连接数据库

    由于Oracle的庞大,有时候我们需要在只安装Oracle客户端如plsql.toad等的情况下去连接远程数据库,可是没有安装Oracle就没有一切的配置文件去支持.最后终于发现一个很有效的方法,Or ...

  5. 关于tcpdump抓包一个很详细的介绍

    http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html

  6. Python-操作Memcache、Redis、RabbitMQ、

    Memcache 简述: Memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的.需要 ...

  7. javascript使用栈结构将中缀表达式转换为后缀表达式并计算值

    1.概念 你可能听说过表达式,a+b,a+b*c这些,但是前缀表达式,前缀记法,中缀表达式,波兰式,后缀表达式,后缀记法,逆波兰式这些都是也是表达式. a+b,a+b*c这些看上去比较正常的是中缀表达 ...

  8. 07SpringMvc_jsp到jsp的控制器_ParameterizableViewController

    本文主要讲的是控制器,Action继承什么类.记得Springmvc系列的第一篇文章说过.SpirngMVC的实现流程.

  9. 【转】【C#】ColorMatrix

    ColorMatrix(色彩矩阵),是GDI+里用来调整图片色彩的矩阵. 什么是矩阵,说白了就是C#里的二维数组. 那么这个矩阵调整色彩的原理是什么,他是怎么来调整色彩的呢?这个要从线性代数里的矩阵相 ...

  10. 关于RACK的一点简单介绍

    0 前言 如有错误欢迎指出,如需转载,请注明原文链接. 1 Rack是什么 一句话介绍,Rack是一个Web接口,定义了一系列的标准,具体实现的工作是交给服务器(puma, thin等)做的. 如果你 ...