shell if 小数 比较

shell if 小数 比较shell的[]对于数值的判断都是基于整数的,如果碰到小数就无能为力了。google了一把发现用awk的牛人多,不过发现一个兄弟的更加好。if[`expr$a\>$b`-eq0];thenecho$bisbiggerelseecho$aisbiggerfi通过ex…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

shell的 [ ] 对于数值的判断都是基于整数的,如果碰到小数就无能为力了。
google了一把发现用awk的牛人多,不过发现一个兄弟的更加好。

  1. if [ `expr $a \> $b` eq 0 ];then

  2.     echo $b is bigger

  3. else

  4.     echo $a is bigger

  5. fi


通过expr来进行判断,所以a 和 b 可以是小数。

#########################

上面这个是有bug的!!!!只能比较第一位数字~~~~!坑爹!!!

#########################

正解如下:

在shell脚本中,无法对浮点数进行比较,如:

max=0.1

min=0.01

if [ “$max” -gt “$min” ]

then

echo “YES”

else

echo “NO”

fi

这样的比较,运行后得到错误:

line 4: [: 0.1: integer expression expected

因为bc和awk都支持浮点数,可以使用bc进行处理:

max=0.1

min=0.01

if [ `echo “$max > $min” | bc` -eq 1 ]

then

echo “YES”

else

echo “NO”

fi

也可以写成if [ $(echo “$max < $min”|bc) -eq 1 ]

验证方法:

a=6.3;b=8.4;ret=`echo “$a > $b” | bc` ;echo $ret 

如果返回的是1,则a大,如果不是1,则b大

      本文转自Tenderrain 51CTO博客,原文链接:http://blog.51cto.com/tenderrain/1916029,如需转载请自行联系原作者

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157618.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • matlab直方图绘制[通俗易懂]

    matlab直方图绘制[通俗易懂]x=[55,63,69,70,75,78,82,84,85,88,90,96,100];y=[1,2,1,6,4,7,2,1,3,2,4,2,1];bar(x,y)>>a=[54.5,64.5,74.5,84.5,94.5];>>b=[1,3,17,8,7];>>bar(a,b)barh():可以显示一个水平的条形图barh(a,b)bar3或bar3h:显示三维bar3(a,b)…

    2022年10月18日
    2
  • JDK环境变量配置(win10)[通俗易懂]

    JDK环境变量配置(win10)[通俗易懂]前言对于每一位做Java开发人员来说,JDK是必须要安装的,安装好JDK,其实并没有结束,一般情况下还需要配置JDK的环境变量,给大家介绍一下如何在Win10下配置JDK,并检测是否配置成功。步骤使用Windows图标+R,快速打开“运行”操作界面,并输入cmd,回车确认。在命令行输入java–version;如果能显示java的版本信息,则表示不需要配置,下面的步骤也不需要了。打开系统环境变量配置的页面。具体操作是:打开开始菜单,找到“此电脑”,然后右键“更多”→“属性”。在弹出的页面,

    2022年7月21日
    11
  • ESXI洗白安装黑群晖教程,附文件「建议收藏」

    ESXI洗白安装黑群晖教程,附文件「建议收藏」本教程旨在体验群晖的功能,建议您购买正版群晖。————————————————–分割线————————————————–所需文件下载地址:链接:https://pan.baidu.com/s/1YiUGNoghLd_kRoS7BecAwA提取码:w3pj————————————————–分割线-

    2022年6月13日
    213
  • 3_1符合python语言变量_中国大学MOOC: 以下选项中不符合Python语言变量命名规则的是以下选项中不符合Python语言变量命名规则的是 答案:3_1…[通俗易懂]

    3_1符合python语言变量_中国大学MOOC: 以下选项中不符合Python语言变量命名规则的是以下选项中不符合Python语言变量命名规则的是 答案:3_1…[通俗易懂]劳心者治人,劳力者治於人”,孟子之,其所以驳()也。俟:农人家当睫状肌缩,悬韧带弛时,晶状体者也:前面曲率增,折光力强人生直为人观之义,是指()耳:生人之用于世与人所有之用、意义量人生直之格宜为()耳:劳、贡献宜从四方来得新时两步行要之位置。中国大学MOOC口被虫伤之者其主何护问答:焦思、惧中国大学MOOC口以下于北方经制论不正者是也:邑化率增速高中国大学MOOC口补虚药为补虚扶弱,正体气血阴阳虚…

    2022年6月10日
    42
  • 远程连接工具SecureCRTPortable连接不上linux的解决方法[通俗易懂]

    远程连接工具SecureCRTPortable连接不上linux的解决方法[通俗易懂]今天学习linux用远程工具连接时,连接不上,出现了一个类似函数的东西,运用了排除法,1.先检查了虚拟机服务是否开启2.然后ping网关看能通吗3.然后pingDNS域名,再pingwww.baidu.com都能ping通,百思不得其解然后通过查资料,输入route发现default后面并没有分配默认网关于是输入routeadddefaultgw192.168…

    2022年5月8日
    333
  • Android多线程研究(4)——从一道面试题说起

    Android多线程研究(4)——从一道面试题说起

    2021年11月28日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号