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 ...
随机推荐
- Python的模块引用和查找路径
模块间相互独立相互引用是任何一种编程语言的基础能力.对于“模块”这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义.对于编译型的语言,比如C#中 ...
- 4-3 管理及IO重定向
1. 系统设定默认输出设备:标准输出(STDOUT,1) 系统设定默认输入设备:标准输入(STDIN,0) 系统设定默认错误设备:标准错误(STDERR,2) 2. 标准输入:键盘 标准输出和错误输出 ...
- 一枚招聘信息——分期乐招页面重构/UI开发(8k-12k 深圳 经验1-3年 学历不限 全职)
腾讯人创建的分期乐公司,急需页面重构人才若干枚,公司前景好,机会难得,有兴趣的速速 8k-12k 深圳 经验1-3年 学历不限 全职 公司网站: http://www.fenqile.com/ 职位诱 ...
- Dijkstra算法(三)之 Java详解
http://www.cnblogs.com/skywang12345/p/3711516.html
- #id+变量
"#id"在解析的时候看成是一个整体字符串或者是一个具体的selector了,只有写成"#"+id,这是才会在解析时把id变量的值进行替换成被赋予的变量的值.链 ...
- [LeetCode] Multiply Strings 字符串相乘
Given two numbers represented as strings, return multiplication of the numbers as a string. Note: Th ...
- 在WPF程序中打开网页:使用代理服务器并可进行JS交互
本项目环境:使用VS2010(C#)编写的WPF程序,通过CefSharp在程序的窗体中打开网页.需要能够实现网页后台JS代码中调用的方法,从网页接收数据,并能返回数据给网页.运行程序的电脑不允许上网 ...
- Android开发之画图的实现
Android开发之画图的实现 四天前上完安卓的第一节课,真的是一脸懵逼,尽管熊哥说和java是差不多的,然而这个包和那个包之间的那些转换都是些什么鬼呀!!!但是四天的学习和操作下来,我觉得安卓 ...
- 详解mysql如何配置远程链接,解决各种连接问题
在服务器上面我们经常需要去使用mysql,有些童鞋刚刚配置好了服务器,想在本地的一些图形化软件去连接mysql得到更直观的表格显示,此时很可能不允许连接,为了探究为什么连接失败,在这里我会对mysql ...
- ajax同步处理(使得JS按顺序执行)
在项目中碰到一个问题: 图一: 图二: 函数1代码:这里是因为有ajax请求,默认的是异步的 //点击分页页码,请求后台返回对应页码的数据 function getdata(fewPage,flag, ...