linux expr格式,计算2-expr命令举例

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值