使用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" #接下来的计算就很容易了 ~
#!/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#