shell整数与小数比较,小数之间比较的方法【转】
max=0.1
min=0.01
if [ "$max" -gt "$min" ]
then
echo "YES"
else
echo "NO"
fi
max=0.1
min=0.01
if [ `echo "$max > $min" | bc` -eq ]
then
echo "YES"
else
echo "NO"
fi
[root@hnanet ~]# max=0.1
[root@hnanet ~]# min=0.01
[root@hnanet ~]# echo "$max > $min" | bc [root@hnanet ~]# echo "$max < $min" | bc [root@hnanet ~]# echo "$max < $min"
0.1 < 0.01
也可参考如下
下面是一个常规写法的示例: if [ 1.1 -gt ];then
echo "OK"
fi 直接会抛出如下异常: line : [: 1.1: integer expression expected 正确的写法如下: if [ `echo "1.1 > 1" | bc` -eq ];then
echo "OK"
fi
小数比较
前言
用于数值比较的无非大于、小于、等于、大于等于、小于等于这几个。
比较格式: [ 数值1 比较符 数值2 ] 注意左边的括号与数值1之间有一个空格,同样,数值2和右边的括号之间也有空格。
数值比较运算符对应下面几个:
-eq 判断相等,相等返回true,否则返回false
-ne 判断是否不相等,不相等返回true,否则返回false
-gt 判断左边是否大于右边的值,大于则返回true,否则返回false
-lt 判断左边是否小于右边的值,小于则返回true,否则返回false
-ge 判断左边是否大于或等于右边的值,大于则返回true,否则返回false
-le 判断左边是否小于右边的值,小于则返回true,否则返回false
小数的比较
1.shell中 可以用 bc 对小数进行运算
#echo 5.5+1.1 | bc
6.6
2.使用,awk判断小数点后的位数
num=6.6666;echo $num | awk 'BEGIN{FS="."}{printlength($2)}'
1
3.直接使用awk比较大小
awk -v num1=6.6 -v num2=5.5'BEGIN{print(num1>num2)?"0":"1"}'
1
如果num1>num2打印输出0,否则输出1
4.使用expr,返回1表示a>
a>b, 0表示a<
a<b
a=6.6 b=5.5;expr $a > $b
1
5.使用br
echo "6.6>5.5" |br
1
linux shell 中小数进行比较
if [ `expr $a \> $b` -eq 0 ];then
echo $b is bigger
else
echo $a is bigger
fi
原文链接:https://blog.csdn.net/david__peng/article/details/82980288
shell整数与小数比较,小数之间比较的方法【转】的更多相关文章
- EL表达式取整数或者取固定小数位数的简单实现
EL表达式取整数或者取固定小数位数的简单实现 例如${8/7} ,${6/7} ,${12/7 } 在页面的显示结果分别为: 1.1428571428571428 0.8571428571428571 ...
- Shell 整数比较、字符串比较
整数比较 -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如:if [ "$a" - ...
- Java中取小数点后两位(四种方法)
摘自http://irobot.iteye.com/blog/285537 Java中取小数点后两位(四种方法) 一 Long是长整型,怎么有小数,是double吧 java.text.D ...
- shell 脚本文件十六进制转化为ascii码代码, Shell中ASCII值和字符之间的转换
Shell中ASCII值和字符之间的转换 1.ASCII值转换为字符 方法一: i=97 echo $i | awk '{printf("%c", $1)}' ...
- input输入框只能输入正数和小数(保留小数点后两位)
1.限制只能输入正数和小数保留小数点后两位 1 <input type="number" id="txtNum" /> 2 3 <script ...
- Java中几种常用数据类型之间转换的方法
Java中几种常用的数据类型之间转换方法: 1. short-->int 转换 exp: short shortvar=0; int intvar=0; shortvar= (short) in ...
- LeetCode竞赛题:K 次取反后最大化的数组和(给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次。)
给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次.(我们可以多次选择同一个索引 i.) 以这种方式修改数组后 ...
- php计算两个坐标(经度,纬度)之间距离的方法
本文实例讲述了php计算两个坐标(经度,纬度)之间距离的方法.分享给大家供大家参考.具体如下: 这里使用php计算两个坐标(经度,纬度)之间的距离,返回结果为米或者千米 function distan ...
- Shell 循环中实现展示进度百分比的脚本方法
Shell 循环中实现展示进度百分比的脚本方法 当我需要处理一个几万行的文件的时候,需要处理的时间是比较长的.我一开始的想法是,没处理一行,就输出一个 # 号.但是这样还是会出现很多很多的 # 号,即 ...
- ecshop广告宽度值必须在1到1024之间的解决方法
ecshop加广告出现广告位的宽度值必须在1到1024之间的解决方法,这个问题是今天刚刚发现的,我就郁闷了,如今1024宽度的广告能做什么.你看看京东,天猫,非常多都是大型的横幅广告,这点ecshop ...
随机推荐
- 利用Beef劫持客户端浏览器
利用Beef劫持客户端浏览器 环境: 1.Kali(使用beef生成恶意代码,IP:192.168.114.140) 2.一台web服务器(留言板存在XSS跨站脚本漏洞,IP:192.168.11 ...
- 你的MES今天升级了吗?
你以为把MES装上了就完事了吗?NO NO NO!乔布斯先生曾讲过“你如果出色地完成了某件事,那你应该再做一些其他的精彩事儿.不要在前一件事上徘徊太久,想想接下来该做什么.” 目前大部分企业都已经完成 ...
- postgresql9.5编译安装体验
实验环境: centos7.6 pgsql9.5 源码编译安装 实验目的: 体验源码编译安装pgsql 01.download https://ftp.postgresql.org/pub/sourc ...
- ubuntu18.04使用kubeadm部署k8s单节点
实验目的: 体验kubeadm部署k8s服务,全流程体验! 实验环境: ubuntu18.04 联网在线部署 kubeadm 01.系统检查 节点主机名唯一,建议写入/etc/hosts 禁止swap ...
- linux 常用工具记录及简介
前言 linuxz虽然各种软件的生态还比较差,但是大势所趋,早晚都是要用的.记录下自己常用的软件,要是那天系统崩了重装也舒服点 编程工具 pycharm专业版(社区版也能用,只是用惯了专业版) * 下 ...
- Docker容器的简单使用
1. docker的使用 1> 创建容器 创建并启动容器: docker run -it -name 容器名 镜像: 版本 /bin/sh(bash) 创建并不启动容器:docker crea ...
- (二)MongoDB基本概念
(二)MongoDB基本概念 mongodb 2018年03月07日 08时43分53秒 mognoDB是一个面向文档的数据库,而不是关系型数据库,是不是用关系型数据库主要是为了获得更好的扩展性,还会 ...
- Python3如何上传自己的PyPI项目
有过一定的 Python 经验的开发者都知道,当引入第三方包时,我们常常会使用 pip install 命令来下载并导入包. 那么,如何写一个自己的包,上传到 PyPI 呢,其他开发者也可以通过 pi ...
- 【坑】【数组的坑】1、对象assign复制的假深度,2、数组slice复制的坑,3、还有数组map复制的坑
1.对象复制的坑 Object.assign() Object.assign() //浅复制 基本没用 跟直接用= 一样 Object.assign(true,{}) // 以为是深拷贝,其实只是一级 ...
- 浙大PAT 2-10. 海盗分赃——经典博弈
题意 P个海盗偷了D颗钻石后分赃($3 \leq P, D\leq 100$),采用分赃策略: 从1号开始,提出一个分配金币的方案,如果能够得到包括1号在内的绝对多数(即大于半数)同意,则执行该方案, ...