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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【转】游戏黑客亲述盗号全过程 揭露黑客产业链

    【转】游戏黑客亲述盗号全过程 揭露黑客产业链

    2021年8月16日
  • 2019 阿里云峰会·北京站正式启动,互联网出海分论坛报名开启

    2019 阿里云峰会·北京站正式启动,互联网出海分论坛报名开启

    2021年7月2日
  • linux防挂马软件,Linux利用Python脚本检测网站挂马程序

    linux防挂马软件,Linux利用Python脚本检测网站挂马程序部署站点后通常首先会生成该站点所有文件的MD5值,如果上线后网站页面内容被篡改(如挂马)等,可以比对之前生成MD5值快速查找去那些文件被更改,为了使系统管理员第一时间发现,可结合crontab或nagios等工具。程序测试如下:#pythoncheck_change.pyUsage:pythoncheck_change.pyupdate/home/wwwrootpythoncheck…

    2022年9月28日
  • Pygame安装的详细说明

    Pygame安装的详细说明Pygame的安装在未安装好pygame模块时,我们在使用pygame开发游戏就回发生Error:ModuleNotFoundError:Nomodulenamed‘pygame’此时则要安装好pygame模块才可以正常使用pygame模块进行游戏开发。下面详细讲述pygame模块的安装:1.先检查自己的python版本,我们现在用的一般是最新版,例如我下载的是python3….

    2022年5月23日
  • 五大经典算法总结

    五大经典算法总结    马上要开始投简历找实习了,自己还是毛都不会,慌得一笔,从今天开始每天刷2道以上的leetcode然后总结,并且总结各种面试题的知识点,以后常复习,加油。    在刷leetcode时经常看到有人说DP,然后去百度了DP是个啥,才知道DP是五大经典算法之一,今天开始总结一下五大经典算法。    五大经典算法分为1、分治法:把一个复杂的问题分成两个或更多的相同或相似的子问…

    2022年5月18日
  • FEC相关知识「建议收藏」

    FEC相关知识「建议收藏」1概念和原理前向纠错前向纠错也叫前向纠错码(ForwardErrorCorrection,简称FEC),是增加数据通讯可信度的方法。在单向通讯信道中,一旦错误被发现,其接收器将无权再请求传输。FEC是利用数据进行传输冗余信息的方法,当传输中出现错误,将允许接收器再建数据。常用的前向纠错码(1)电视传输专用的前向纠错码电视节目广播前向纠错采用2/3码率格形码、卷积交织

    2022年8月11日

发表回复

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

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