一、expr命令

1.语法和功能

只能用于整数运算和字符串长度、匹配等运算处理

expr 2 + 2
expr 2 - 2
expr 2 \* 2
expr 2 / 2
i=5;i=`expr $1 + 6`;echo $i

说明:

运算符及用于计算的数字左右都至少有一个空格,否则会报错

乘号需要转义

在shell中进行变量计算时,需要用反引号括起来

2.用expr判断字符串是否是整数

1) 原理:

expr做计算时,必须是整数,所以当非整数和整数想加时,命令返回错误,直接查看错误值就能判断是否是整数

  • i=1;expr $i + 1 &>/dev/null;echo $?

    0
  • i=a;expr $i + 1 &>/dev/null;echo $?

    2

1是整数,所以计算结果返回0,a不是整数,所以计算错误,返回非0

2) 脚本内容

  • cat /server/scripts/t3.sh
#!/bin/bash
#no.1
[ $# -ne 2 ] &&{
echo "$0 plase input NUM1 NUM2"
exit 1 #必须输入两个参数
}
#no.2
a=$1
b=$1
expr $a + $b &>/dev/null
if [ $? -ne 0 ]
then #两个变量相加返回非0,表示不是整数
echo "you must input two int nums."
exit 2
fi
#no.3
echo "a-b=$(($a-$b))"
echo "a+b=$(($a+$b))"
echo "a*b=$(($a*$b))"
echo "a/b=$(($a/$b))"
echo "a**b=$(($a**$b))"
echo "a%b=$(($a%$b))"

3) 执行脚本

  • sh /server/scripts/t3.sh 2

    /server/scripts/t3.sh plase input NUM1 NUM2
  • sh /server/scripts/t3.sh a 1

    you must input two int nums.
  • sh /server/scripts/t3.sh 2 1

    a-b=0

    a+b=4

    a*b=4

    a/b=1

    a**b=4

    a%b=0

3.用expr判断文件扩展名是否符合要求

1) 脚本内容:

  • cat /server/scripts/t5.sh
#!/bin/bash
if expr "$1" : ".*\.pub" &>/dev/null
then #比较运算
echo "you are using $1"
else
echo "plase use *.pub file"
fi

2) 执行结果:

  • sh /server/scripts/t5.sh abd

    plase use *.pub file
  • sh /server/scripts/t5.sh abd.pub

    you are using abd.pub

4. 利用expr计算变量长度

计算大于语句中字符数小于6的单词

  • cat /server/scripts/t6.sh
for n in I am oldboy linux welcome to our training
do
if [ `expr length $n` -le 6 ]
then
echo $n
fi
done
#利用length参数计算字符串长度
  • sh /server/scripts/t6.sh

I

am

oldboy

linux

to

our

计算2-expr命令举例的更多相关文章

  1. expr 命令

    求表达式变量的值.expr 命令读入 Expression 参数,计算它的值,然后将结果写入到标准输出. 用法:expr Expression Expression 参数规则: 用空格隔开每个项. 用 ...

  2. 【转】linux expr命令参数及用法详解

    在抓包过程中,查看某个设定时间内,数据上下行多少,用命令expr 计算! --------------------------------------------------------------- ...

  3. expr命令

    expr命令的兩大作用:1)四则运算:2)字符串的操作: 1.四则运算 [tough@localhost ~]$ + + [tough@localhost ~]$ + [tough@localhost ...

  4. linux expr命令参数及用法详解

    expr用法 expr命令一般用于整数值,但也可用于字符串.一般格式为: #expr argument operator argument expr也是一个手工命令行计数器. #$expr 10 + ...

  5. linux下数学运算器:expr命令(shell中完成数学运算)

    expr用法  expr命令一般用于整数值,但也可用于字符串.一般格式为:  expr argument operator argument  expr也是一个手工命令行计数器.  $expr 10 ...

  6. SHELL脚本--expr命令全解

    bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html expr命令可以实现数值运算.数值或字符串比较.字符串匹配.字 ...

  7. Linux之expr命令详解

    expr命令: expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串. –格式为: expr Expression(命令读入Expressi ...

  8. (转)linux expr命令参数及用法详解

    linux expr命令参数及用法详解 原文:http://blog.csdn.net/tianmohust/article/details/7628694 expr用法 expr命令一般用于整数值, ...

  9. linux之expr命令

    expr命令可以实现数值运算.数值或字符串比较.字符串匹配.字符串提取.字符串长度计算等功能.它还具有几个特殊功能,判断变量或参数是否为整数.是否为空.是否为0等. 先看expr命令的info文档in ...

  10. expr命令使用

    转载:http://www.cnblogs.com/f-ck-need-u/p/7231832.html expr命令可以实现数值运算.数值或字符串比较.字符串匹配.字符串提取.字符串长度计算等功能. ...

随机推荐

  1. fastdfs虚拟机单机版搭建

    说明:github搭建步骤:https://github.com/happyfish100/fastdfs/wiki#trackermkdir /home/dfs #创建数据存储目录 cd /usr/ ...

  2. Jenkins Pipeline(一) - 创建一个新的pipeline

    jenkins pipeline: 使用Goovy语法,以代码形式更自由地编写jenkins job. 代码文本被称为Jenkinsfile IDE: vscode 推荐安装vscode插件: jen ...

  3. EL表达式读取属性不存在的异常,读取类的属性不存在,无法调用到该属性

    修改类中的名称,必须要符合2JavaBaen要求,否则EL表达式读取不到.

  4. 教你快速理解Linux虚拟化网络的全脉络,正确配置网络联通性。

    https://www.bilibili.com/video/BV1iy4y177f4?p=12 实用的干货快先码起来,说不定以后会用到哟

  5. 在前端js worker里使用dom并且加载jquery

    四个工具: nodejs + npm npm安装的jsdom npm安装的jquery npm安装的browserify 网址: browserify: https://browserify.org/ ...

  6. 5G工业智能网关助力智能制造开辟新赛道

    今年以来,物联网技术加速产业变革,制造业出现了不少新现象.从大规模到个性化.从"渠道为王"到"用户定义".从自有工厂到共享协同,智能化制造在很多地方颠覆了传统模 ...

  7. git的相关命令

    1.将文件添加至版本库的暂存区(stage)的命令是git add 1.1.  添加完所有有被修改的文件:git add . 1.2. 添加指定文件:git add 指定文件 2.将文件提交至本地仓库 ...

  8. SAP 附件功能 PRD环境无法删除 VIEW_ATTA

    如图:界面上面没有打勾确认按钮 解决方案:来源网址 How to disable, delete and edit buttons function in attachment list. | SAP ...

  9. android控制台应用binder通讯

    在android root环境下,有一个后台服务server进程需要提供接口给控制台应用client调用,本来想用socket方式来做的,后台发现android有更高效的方式来实现.那就是binder ...

  10. joda实现时间工具类

    1.获取当前时间 (底层代码一致) val time1 = new DateTime() val time2 = DateTime.now() //底层调用的就是new DateTime() 2.格式 ...