由于程序需要,我要判断一个浮点数是否大于另一个浮点数。

大概情况描述如下:

变量 mya的值为一个两位小数,这个值是这么取的:

  1. [nigelzeng@ubuntu ~]$ df -h
  2. Filesystem            Size  Used Avail Use% Mounted on
  3. /dev/sda1            5.7G  3.0G  2.5G  55% /
  4. [nigelzeng@ubuntu ~]$df -h | grep xvda2 | awk '{print $2}' | sed 's/G//'
  5. 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进行判断,

一开始是想利用整数来进行判断,但是不行:

  1. [nigelzeng@ubuntu ~]$if [ $mya -le 4 ]; then echo "ok";else echo "fail"; fi
  2. -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里的大牛们的建议,这样写这个比较就可以了:

  1. [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 浮点数比较的更多相关文章

  1. shell比较浮点数和整数

    今天有一个朋友忽然问我在shell中,如何比较浮点数和整数,倒是把我问的一愣,在工作中确实没有遇到这个场景.我们也知道,在shell中数字的计算通常都会转换成整数,比如说1.1和1会被认为是一样的.这 ...

  2. shell比较浮点数

    1 t1="3123982193.090000000"; 2 t2="7872348342.003000000"; 3 if [ `expr $t2 \> ...

  3. Linux SHELL 命令入门题目答案(一)

    1.如何使用shell 打印 “Hello World!” (1)如果你希望打印 !,那就不要将其放入双引号中,或者你可以通过转义字符转义(2)echo 'hello world!' 使用单引号ech ...

  4. Linux SHELL 命令入门题目(一)

    新年新气象,注重知识积累,提高手敲代码能力,而不是眼高手低,只会复制黏贴. 1.使用shell 打印 “Hello World!” 2.求变量'hello world'的字符长度 3.$0 .$SHE ...

  5. shell整数与小数比较,小数之间比较的方法【转】

    在shell脚本中,无法对浮点数进行比较,如: max=0.1 min=0.01 if [ "$max" -gt "$min" ] then echo &quo ...

  6. shell数学运算

    shell的数学运算 branches@ubuntu:~$ var1=$[ * ] branches@ubuntu:~$ echo $var1 branches@ubuntu:~$ var2=$[$v ...

  7. Shell常用命令之printf

    printf 内容格式化输出 格式 printf [format] [输入内容] format参数 %b:打印相关内容并解释其中反斜杠"\"的特殊字符 %q:以shell引用的格式 ...

  8. Linux shell 整数运算 let [ ] (( )) expr以及 浮点数 bc用法(转)

    Abstract : 1)  Linux shell 中使用 let , [ ] ,(( )) 三种运算符操作 shell 变量进行简单的基本运算:2)Linux shell 中使用 expr 与 b ...

  9. shell脚本之浮点数和整数计算

    整数计算 直接使用放括号计算即可,省去*号需要使用转义符的麻烦 #!/bin/bash num1= num2= var1=$[ $num1 * $num2 ] echo "$var1&quo ...

随机推荐

  1. tomcat优化

    tomcat优化:vim catalina.sh添加:JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -X ...

  2. $(window).height(),在火狐下面获取的高度并不是可视区域的高度

    很简单,我发现是没有写<!DOCTYPE html>造成的,加上去就可以了

  3. 一个C++版的嵌入式操作系统

     原创文章,转载请注明出处! 现世面上流传着很多嵌入式操作系统,都已经非常优秀,但本人(Sam的博客-博客园)还是自己编写了一个RTOS,不敢说优秀,但绝对是使用起来最简单的.先看一个工程截图与一段m ...

  4. Ural 1225. Flags 斐波那契DP

    1225. Flags Time limit: 1.0 secondMemory limit: 64 MB On the Day of the Flag of Russia a shop-owner ...

  5. Anna-senpai帖子翻译与Mirai源代码使用

    Anna-senpai这个人太好玩了,整件事就像没有黄段子的无聊世界那样. 无聊翻译了一下,顺便实验了效果. --------------------------------------------- ...

  6. vue.js学习(第一课)

    学习资料 来自台湾小凡! vue.js是javascript的一个库,只专注于UI层面,核心价值永远是 API的简洁. 第一课: 不支持IE8. 1.声明式渲染: el元素的简称 element : ...

  7. js-读取复选框

    js: var obj = document.getElementsByName("yk"); var check_val = []; for(k in obj){ if(obj[ ...

  8. 【20160722-20160728】NOI2016滚粗记&&酱油记&&游记

    先挖坑 #include <cstdio> using namespace std; int main(){ puts("转载请注明出处:http://www.cnblogs.c ...

  9. 如何把Spring制作成jar包,然后在项目里运行。

    第一步:首先我们先把Spring的代码准备好.如图一 (图1). 第二步:我们在桌面新建一个文件夹,如图二 (图2). 我们要在这个文件夹里新建两个夹,一个文件夹是你项目的包名,也就是我们图1的aop ...

  10. Oracle视图时间戳转为Date

    CREATE OR REPLACE VIEW PDAORDER AS SELECT po.id id, po.order_no AS order_no, po.money AS money, (SEL ...