一、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

最新文章

  1. 在Linux(Luna)下向Launch启动器中添加图标
  2. linux磁盘存储命令 磁盘存储命令
  3. CountDownLatch线程阻塞用法实例
  4. jQuery1.9.1--attr,prop与val方法源码分析
  5. Hadoop学习—最大的敌人是自己
  6. Mybatis-generator使用和扩展
  7. php socket 通信
  8. 2015第23周一SVN插件安装
  9. 关于Eclipse+SVN 开发配置
  10. matrix()方法与translate()、scale()、rotate()、skew()方法的关系
  11. 关于String中的不变模式
  12. Python函数参数的五种类型
  13. python批量处理
  14. hibernate学习(四)hibernate的一级缓存&快照
  15. jquery获取一组文本框的值
  16. css 修改input中placeholder提示问题颜色
  17. Consumer group理解深入
  18. ab与nc命令,tcpdump命令
  19. Windows Server 2008 R2中无法使用360免费Wifi的解决方案
  20. 2-Twenty Second Scrum Meeting-20151222

热门文章

  1. CTreeCtrl的用法汇总(转)
  2. 手写g++编译命令行工具笔记
  3. 硬件路灯第一期CPU篇
  4. FSL--fsleyes建立软连接方法
  5. AFNI 教程 步骤5:统计和建模
  6. 20203412马畅若 实验二《Python程序设计》实验报告
  7. 模拟ATM系统 —— 用户注册、登录和用户操作页设计 、查询账号、退出账号功能
  8. Linux下添加启动项并简化操作命令-nginx为例
  9. 杂:使用Shell判断文件换行符(LF/CRLF)
  10. python36