linux expr格式,计算2-expr命令举例
# **一、expr命令**
## **1.語法和功能**
只能用于整數(shù)運(yùn)算和字符串長度、匹配等運(yùn)算處理
```
expr 2 + 2
expr 2 - 2
expr 2 \* 2
expr 2 / 2
i=5;i=`expr $1 + 6`;echo $i
```
> 說明:
運(yùn)算符及用于計(jì)算的數(shù)字左右都至少有一個(gè)空格,否則會(huì)報(bào)錯(cuò)
乘號(hào)需要轉(zhuǎn)義
在shell中進(jìn)行變量計(jì)算時(shí),需要用反引號(hào)括起來
## **2.用expr判斷字符串是否是整數(shù)**
### 1)原理:
expr做計(jì)算時(shí),必須是整數(shù),所以當(dāng)非整數(shù)和整數(shù)想加時(shí),命令返回錯(cuò)誤,直接查看錯(cuò)誤值就能判斷是否是整數(shù)
>* `i=1;expr $i + 1 &>/dev/null;echo $?`
> 0
>* `i=a;expr $i + 1 &>/dev/null;echo $? `
>2
>>1是整數(shù),所以計(jì)算結(jié)果返回0,a不是整數(shù),所以計(jì)算錯(cuò)誤,返回非0
### 2)腳本內(nèi)容
* cat /server/scripts/t3.sh
```
#!/bin/bash
#no.1
[ $# -ne 2 ] &&{
echo "$0 plase input NUM1 NUM2"
exit 1#必須輸入兩個(gè)參數(shù)
}
#no.2
a=$1
b=$1
expr $a + $b &>/dev/null
if [ $? -ne 0 ]
then#兩個(gè)變量相加返回非0,表示不是整數(shù)
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)執(zhí)行腳本
>* `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判斷文件擴(kuò)展名是否符合要求**
### 1)腳本內(nèi)容:
* cat /server/scripts/t5.sh
```
#!/bin/bash
if expr "$1" : ".*\.pub" &>/dev/null
then#比較運(yùn)算
echo "you are using $1"
else
echo "plase use *.pub file"
fi
```
### 2)執(zhí)行結(jié)果:
> * `sh /server/scripts/t5.sh abd`
> plase use *.pub file
> * `sh /server/scripts/t5.sh abd.pub`
> you are using abd.pub
### 4.利用expr計(jì)算變量長度
計(jì)算大于語句中字符數(shù)小于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ù)計(jì)算字符串長度
```
* `sh /server/scripts/t6.sh`
>I
am
oldboy
linux
to
our
總結(jié)
以上是生活随笔為你收集整理的linux expr格式,计算2-expr命令举例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 平淡无奇的《神秘海域》电影海报
- 下一篇: 年度十大热歌均为短视频歌曲引热议 平台是