shell的expr运算符的使用
发布时间:2020-12-15 20:01:16 所属栏目:安全 来源:网络整理
导读:使用expr注意: 运算符及用于计算的数字左右都至少有一个空格,否则报错 使用乘号的时候,必须用反斜线屏蔽其特定的含义 expr的企业级实战案例详解 由于函数库很少,所以expr是一个简单的用于判断一个字符串是否为整数的方法;原理就是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# (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |