shell-09 比较和测试:

作者: georgesre | 来源:发表于2019-05-22 11:38 被阅读1次

比较实例:

image.png
比较实例:
如果test命令或者【】的表达式为真,才会执行其他操作
if[ "$string" = "some_string" ];then…
if [ $integer -eq 15 ];then…
if test $string = "some_string";then…

只有test结果为真,测试条件逻辑与才会执行其他代码
test $debug -eq 1 && echo some_debug_output

只有test结果为假,测试条件逻辑或才会执行其他代码
test $debug -eq 1 ||echo some_debug_output

加长版(加上{}成为组合命令):
test $debug -eq 1 && {
           echo some_debug_output
           echo some_more_debug_outbug
}
[ $debug -eq 1 ] && {
           echo some_debug_output
           echo some_more_debug_outbug
}

第一个满足执行第二个然后依次执行:
[ "$txt" ] && [ "$txt" != "$txt2" ] && some_text="$txt $txt2"

只要满足一个就成立,或者全部满足才成立:
if [ "$txt" != "$txt2" -a $num -eq $num2 ] || [ $num2 -eq 100 ];then…
其中-a是and,-o是or的意思

判断的格式:
if [ $answer = Y ]
在=号两边最好有空格,而且 [  ] 中有空格
test $debug -gt 0 && echo "Debug is on"
-gt可被,eq,lt,等替代。
test 命令可以用“[”该符号代替;
字符判断:

数字判断:

文件判断:

逻辑表达式判断:

包含了小数的比较测试:

image.png
需求:写个调度器需要对小数之间进行大小比较,经查询shell中 可以用 bc 对小数进行运算
example:
#echo 5.5+1.1 | bc
6.6
具体情况#man bc
然而对小数进行比较的相关方法有几个:
1. 自己的解决方法,判断小数点后最多有几位数(N),然后对将要比较的两个数值进行 乘与10的N次方
也就是将小数点去掉来进行比较(小数点后位数多的直接去掉小数点,少的用0补齐)
example:
6.6 x 10 >5.5x10   66>55
6.6666 x 10000 > 5.5 x10000    66666>55000
提示:使用 num=6.6666;echo $num | awk 'BEGIN{FS="."}{print length($2)}'判断小数点后的位数
当然,如果你确定小数点后最多肯定不会超过4位你可直接去掉10000,类推。。
2. 直接用awk
awk -v num1=6.6 -v num2=5.5 'BEGIN{print(num1>num2)?"0":"1"}'
如果num1>num2打印输出0,否则输出1
3.expr
比较妙的方法 expr $a \> $b
返回1表示$a>$b, 0表示$a<$b
# a=6.6 b=5.5;expr $a \> $b
1
4. br
用br其实也是可以实现
echo "6.6>5.5" |br
1
echo "5.5>6.6" | br
0

云平台开发运维解决方案@george.sre

个人主页:https://geekgoogle.com

GitHub: https://github.com/george-sre

Mail: george.sre@hotmail.com

简书: georgesre - 简书

欢迎交流~

相关文章

  • shell-09 比较和测试:

    比较实例: 包含了小数的比较测试: 云平台开发运维解决方案@george.sre个人主页:https://geek...

  • 第1章-小试牛刀(17比较与测试)

    1.17比较与测试 程序中的流程控制是由比较语句和测试语句处理的。Bash能够执行各种测试。我们可以用if、if ...

  • Python测试框架:Pytest和unittest比较

    Pytest和unitest都能写自动化,unittest比较基础,方便进行二次开发,集成平台什么的,Pyte...

  • 自动化测试

    自动化测试介入时间:功能比较稳定。 主要目的:回归测试,冒烟测试 早期介入接口测试,使用mock和fake

  • 高效配置项测试,对人员素质的要求

    配置项测试与单元和集成测试不同,它属于黑盒测试,其测试依据为需求规格说明文档。通常,在比较正规的软件组织中,单元和...

  • 软件测试之魂 读书小记

    这本书看了一半,内容还是比较充实的,从软件测试概念、找bug的核心思维、测试设计、测试架构到测试需求分析和测试策略...

  • bash shell编程2-逻辑语句if while case

    1.if 条件测试 - 数值比较 2. if 条件测试 - 字符串比较 3. if 条件测试 - 文件测试 4. ...

  • 什么是自动化测试

    自动化测试是现代软件开发的必备环节和基本要求。本文通过手工测试和自动化测试的比较,介绍了自动化测试的基本概念和优点...

  • runoob js第三天

    JavaScript 比较 和 逻辑运算符 比较和逻辑运算符用于测试 true 或者 false。比较运算符x=5...

  • 从零开始学AB测试:基础篇

    什么是AB测试? 通俗点理解,AB测试就是比较两个东西好坏的一套方法,这种A和B的比较在我们的生活和人生中非常常见...

网友评论

    本文标题:shell-09 比较和测试:

    本文链接:https://www.haomeiwen.com/subject/twuyzqtx.html