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,如需转载请自行联系原作者

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Python win32api_python api文档

    Python win32api_python api文档本文整理汇总了Python中win32api.SetCursorPos方法的典型用法代码示例。如果您正苦于以下问题:Pythonwin32api.SetCursorPos方法的具体用法?Pythonwin32api.SetCursorPos怎么用?Pythonwin32api.SetCursorPos使用的例子?那么恭喜您,这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方…

    2022年10月11日
  • docker如何卸载_docker 删除容器

    docker如何卸载_docker 删除容器2.卸载docker相关包输入如下命令查看相关包把匹配到的包执行yumremove删除3.查看docker卸载成功

  • 省赛准备阶段

    省赛准备阶段

  • php实现页面跳转的方式_html跳转代码

    php实现页面跳转的方式_html跳转代码在php中要实现跳转有很多方法,最常规的跳转方法就是使用header函数来操作了,当然也可以在php中输入js跳转形式,下面我来给大家介绍一下。PHP跳转代码如下复制代码header(“location:http://www.jquerycn.cn”);?>header函数使用PHP页面跳转一、header()函数header()函数是PHP中进…

  • 御用导航官方网站提醒提示页_砼讯 | 河海大学官方网站全新改版上线!「建议收藏」

    御用导航官方网站提醒提示页_砼讯 | 河海大学官方网站全新改版上线!「建议收藏」上新了河海河海大学的官方网站上新啦!经过精心的筹备和技术人员不懈努力在105周年校庆来临之际河海大学官方网站全新改版上线!旧版网站全新改版新版网站高端大气的界面设计简洁明晰的板块分布河海元素的多重呈现超大大大图带来绝佳的视觉体验改版后的河海大学官网分为:河海新闻学术活动信息公告光影河海媒体河海五大板块信息门户、邮箱等在网站的右上角校园文化、校园景观、校园服务、图书档案、校历、校车等则在校…

  • linux futex浅析[通俗易懂]

    linux futex浅析[通俗易懂]Futex,FastUserspacemuTEXes,作为linux下的一种快速同步(互斥)机制,已经存在了很长一段时间了(sincelinux2.5.7)。它有什么优势?又提供了怎样一些功能,本文就简单探讨一下。futex诞生之前在futex诞生之前,linux下的同步机制可以归为两类:用户态的同步机制和内核同步机制。用户态的同步机制基本上就是利用原子指令实现的spinlock。最简单的实现就是使用一个整型数,0表示未上锁,1表示已上锁。trylock操作就利用原子指令尝试将0改为1

发表回复

您的电子邮箱地址不会被公开。

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