shell的expr运算符的使用

使用expr注意:

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

使用乘号的时候,必须用反斜线屏蔽其特定的含义


expr的企业级实战案例详解

由于函数库很少,所以expr是一个简单的用于判断一个字符串是否为整数的方法;原理就是expr做计算的时候变量或者字符串必须是整数的规则。把一个变量或者字符串和一个整数相加,如果$?返回的是0;这个变量就是整数。


例如:通过传参判断输出是否为整数:

#!/bin/bash

s=`expr$1+42>&1`
a=$?

if[$a-eq0];then
echo"thisisint"
else
echo"bad"
fi

判断输入的数值不为空;

#!/bin/bash
read-p"thefirstnum:"num
read-p"thetwonum:"num2
#num=4
#num2=
if[!-n$num]&&[!-n$num2];#-n:不为零是真,所以用!取反
then
echo"thisisabab"
exit1
fi



扩展:

编程思路

第一关:判断参数的个数是不是为2,若不是,则给你提示终止运行

第二个:判断传入的参数是否为整数,若不是,则给我提示终止运行

第三关:做运行

#!/bin/bash
read-p"thefirstnum:"num
read-p"thetwonum:"num2
#num=4
#num2=
if[!$num];#-n:不为零是真,所以用!取反或者用!判断,如果是空值,就执行下面的
then
echo"thisisabab"
exit1
fi

if[!$num2];
then
echo"thisisababe"
exit2
fi


expr$num+$num2+4>/dev/null#有点问题

if[$?-ne0];
then
echo"thismusttwoarge"
exit3
fi

echo"theisgood"

#接下来的计算就很容易了
~

expr的特殊用法:判断文件扩展命名是否符合要求

#!/bin/bash

ifexpr"$1":".*\.pub">/dev/null
then
echo"using$1"
else
echo"usingbad"
fi


使用expr命令计算长度:

root@ubuntu:/home/xpg#char="iamoldboy"
root@ubuntu:/home/xpg#exprlength"$char"
11
root@ubuntu:/home/xpg#echo${#char}
11
root@ubuntu:/home/xpg#echo$char|wc-L
11

请使用shell脚本,打印下面语句中字符串不大于6的单词:

I am oldboy linux welcome to our training

#!/bin/bash
char="Iamoldboylinuxwelcometoourtraining"
foriin$char;
do
#echo$i
if[`echo${#i}`-le6]>/dev/null#if[`exprlength"$i"`-le6]>/dev/null也可以使用expr计算长度
then
echo$i
fi
done

bc计算器:

root@ubuntu:/home/xpg#echo8.8-5|bc
3.8
root@ubuntu:/home/xpg#echo"scale=2;355/133"|bc#scale=2保留两位小数
2.66
root@ubuntu:/home/xpg#

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...