shell if 浮点数比较
由于程序需要,我要判断一个浮点数是否大于另一个浮点数。
大概情况描述如下:
变量 mya的值为一个两位小数,这个值是这么取的:
- [nigelzeng@ubuntu ~]$ df -h
- Filesystem Size Used Avail Use% Mounted on
- /dev/sda1 5.7G 3.0G 2.5G 55% /
- [nigelzeng@ubuntu ~]$df -h | grep xvda2 | awk '{print $2}' | sed 's/G//'
- 5.7
[nigelzeng@ubuntu ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 .7G .0G .5G % / [nigelzeng@ubuntu ~]$df -h | grep xvda2 | awk '{print $2}' | sed 's/G//'
5.7
mya=` df -h | grep xvda2 | awk '{print $2}' | sed 's/G//' `
然后我希望让它跟4进行判断,
一开始是想利用整数来进行判断,但是不行:
- [nigelzeng@ubuntu ~]$if [ $mya -le 4 ]; then echo "ok";else echo "fail"; fi
- -bash: [: 5.7: integer expression expected
[nigelzeng@ubuntu ~]$if [ $mya -le ]; then echo "ok";else echo "fail"; fi
-bash: [: 5.7: integer expression expected
shell 会报错,提示integer expression expected,
只能判断整数,而不是5.7这个浮点数。
但是shell里面是没有变量类型的,所以需要想个别的办法。
参考了CU里的大牛们的建议,这样写这个比较就可以了:
- [nigelzeng@ubuntu ~]$if [ $(echo "$mya <= 4"|bc) = 1 ]; then echo "ok";else echo "fail";fi
[nigelzeng@ubuntu ~]$if [ $(echo "$mya <= 4"|bc) = ]; then echo "ok";else echo "fail";fi
这里借助了bc这个命令(bc是一个计算器,Bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下。)
参考:http://bbs.chinaunix.net/thread-1093131-1-1.html
shell if 浮点数比较的更多相关文章
- shell比较浮点数和整数
今天有一个朋友忽然问我在shell中,如何比较浮点数和整数,倒是把我问的一愣,在工作中确实没有遇到这个场景.我们也知道,在shell中数字的计算通常都会转换成整数,比如说1.1和1会被认为是一样的.这 ...
- shell比较浮点数
1 t1="3123982193.090000000"; 2 t2="7872348342.003000000"; 3 if [ `expr $t2 \> ...
- Linux SHELL 命令入门题目答案(一)
1.如何使用shell 打印 “Hello World!” (1)如果你希望打印 !,那就不要将其放入双引号中,或者你可以通过转义字符转义(2)echo 'hello world!' 使用单引号ech ...
- Linux SHELL 命令入门题目(一)
新年新气象,注重知识积累,提高手敲代码能力,而不是眼高手低,只会复制黏贴. 1.使用shell 打印 “Hello World!” 2.求变量'hello world'的字符长度 3.$0 .$SHE ...
- shell整数与小数比较,小数之间比较的方法【转】
在shell脚本中,无法对浮点数进行比较,如: max=0.1 min=0.01 if [ "$max" -gt "$min" ] then echo &quo ...
- shell数学运算
shell的数学运算 branches@ubuntu:~$ var1=$[ * ] branches@ubuntu:~$ echo $var1 branches@ubuntu:~$ var2=$[$v ...
- Shell常用命令之printf
printf 内容格式化输出 格式 printf [format] [输入内容] format参数 %b:打印相关内容并解释其中反斜杠"\"的特殊字符 %q:以shell引用的格式 ...
- Linux shell 整数运算 let [ ] (( )) expr以及 浮点数 bc用法(转)
Abstract : 1) Linux shell 中使用 let , [ ] ,(( )) 三种运算符操作 shell 变量进行简单的基本运算:2)Linux shell 中使用 expr 与 b ...
- shell脚本之浮点数和整数计算
整数计算 直接使用放括号计算即可,省去*号需要使用转义符的麻烦 #!/bin/bash num1= num2= var1=$[ $num1 * $num2 ] echo "$var1&quo ...
随机推荐
- [转载]跨域iframe高度自适应
场景: 经常会有这样的需求,跟外部合作伙伴合作,要嵌入别人的页面,这时候就需要高度自适应了,在这种跨域的情况下如何解决呢? 解决: 在iframe(合作伙伴的页面,称为P页面)中创建一个隐藏的ifra ...
- Linux查看物理CPU个数、核数、逻辑CPU个数
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo| ...
- [转]Asp.Net 用户验证(自定义IPrincipal和IIdentity)
本文转自:http://www.cnblogs.com/amylis_chen/archive/2012/08/02/2620129.html Default.aspx 页面预览 默认情况下SignI ...
- CANopen学习——感性认知
看不懂的知识硬着头皮也要看.读了当时虽然不理解,但脑子里对其相关名词.概念有印象,继续看下去,多读几遍,一定会在某个地方顿悟. CAN总线只是定义了物理层和数据链路层,并没有定义应用层.这么优秀的总 ...
- PHP环境的搭建(Apache)
一,下载XAMPP集成软件包. 二,Apache的安装配置: Apache的安装就点击下一步下一步,默认路径在系统的C盘. 三,在star Apache的时候,出现了端口号80冲突(被占用),解决 ...
- [LeetCode] Design Snake Game 设计贪吃蛇游戏
Design a Snake game that is played on a device with screen size = width x height. Play the game onli ...
- [LeetCode] Unique Word Abbreviation 独特的单词缩写
An abbreviation of a word follows the form <first letter><number><last letter>. Be ...
- 理解OAuth 2.0
转自:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛 ...
- 小猪cms微信二次开发之怎样分页
$db=D('Classify'); $zid=$db->where(array('id'=>$this->_GET('fid'),'token'=>$this->tok ...
- NOIP2016滚粗记
想了好久还是决定要写... Day0 Day-5得感冒一直没好,连磕5天药丸. 早晨得知爸妈都要上班并不能送我到校的消息,于是计划10:30集合,定表8:45准备自己走去学校. 然后平常睡得有点晚,结 ...