`
nigelzeng
  • 浏览: 605750 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

shell中的浮点数比较

阅读更多

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

大概情况描述如下:

变量 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

 

 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

 

 shell 会报错,提示integer expression expected,

只能判断整数,而不是5.7这个浮点数。

 

但是shell里面是没有变量类型的,所以需要想个别的办法。

参考了CU里的大牛们的建议,这样写这个比较就可以了:

 

[nigelzeng@ubuntu ~]$if [ $(echo "$mya <= 4"|bc) = 1 ]; then echo "ok";else echo "fail";fi

 

 

这里借助了bc这个命令(bc是一个计算器,Bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下。)

 

很久不写shell。。。要慢慢熟悉了

 

参考:http://bbs.chinaunix.net/thread-1093131-1-1.html

 

--------------------------------------------

一天积累一点。

fighting……!

 

 

分享到:
评论

相关推荐

    Shell脚本处理浮点数的运算和比较实例

    在Shell脚本中处理浮点数的运算和比较是一个常见的需求,尤其是在自动化任务和系统监控中。由于Bash shell本身并不支持浮点数运算,因此我们需要借助其他工具,如`bc`和`awk`。 `bc`是一个任意精度的计算器语言,它...

    bash-shell无法处理浮点数.sh

    bash-shell无法处理浮点数

    linux shell实现判断输入的数字是否为合理的浮点数

    这个shell是来判断输入的数字是否为合理的浮点数 实现代码如下: #!/bin/sh # validfloat -- Tests whether a number is a valid floating-point value. # Note that this script cannot accept scientific (1.304...

    Linux与UNIX Shell编程指南.pdf

    Shell提供了多种数据类型,包括字符串、整数、浮点数等。变量可以通过赋值语句或let命令来声明和赋值。 4. 控制结构 控制结构是Shell脚本中用于控制执行流程的语句,包括if语句、case语句、for循环、while循环等。...

    shell中字符串、数值的比较.rar_shell中字符串、数值的比较

    对于初学者和经验丰富的管理员来说,理解和掌握在Shell脚本中如何比较字符串和数值都是至关重要的技能。本教程将深入探讨这一主题,帮助你更好地利用Shell进行条件判断。 ### 字符串比较 在Shell脚本中,我们可以...

    详解shell 变量

    在Bash Shell中,变量的定义无需指定类型,它们默认被当作字符串处理,这意味着无论赋予变量的是整数、浮点数还是其他类型,都会被当作字符串存储。这与C/C++等语言不同,那些语言有明确的数据类型如整型、浮点型、...

    c shell cookie book

    - **5.6 在当前进程中执行脚本**:提供了在当前 shell 进程中执行脚本的方法,而不是启动一个新的子进程。 - **5.7 包别名**:讨论了如何为软件包或应用程序创建别名。 #### 六、一些简单的例子 本章提供了几个简单...

    shell模拟实现计算器加减乘除demo

    在Linux环境中,Shell脚本是一种强大的工具,可以用来自动化各种任务。对于初学者来说,创建一个简单的计算器模拟器是学习Shell脚本语法和流程控制的良好起点。在这个"shell模拟实现计算器加减乘除demo"中,我们将...

    shell中变量替换.docx

    在Shell编程中,变量替换和测试是至关重要的概念。Shell是一种解释型的脚本语言,广泛应用于Linux和Unix系统中,用于自动化系统管理任务。在Shell中,变量用于存储数据,而变量替换则是提取、修改或操作这些变量值的...

    Shell编程范例之数值运算-TinyLab原创.

    《Shell编程范例之数值运算》由TinyLab原创,该文档属于《Shell编程范例序列》的第一章,主要介绍了在Shell编程中如何进行基本的数值运算,包括整数和浮点数的运算,以及如何使用Shell脚本来产生指定范围的随机数和...

    [Ubuntu.Linux.基础视频教程].4.3.Shell.类型转换

    4. 布尔(Boolean):虽然Shell没有直接的布尔类型,但可以通过比较表达式(如`[[ -z $var ]]`或`[[ $var -eq $othervar ]]`)来模拟布尔值。 5. 文件描述符(File Descriptor):在Unix-like系统中,文件描述符...

    强力推荐Shell 脚本教程 ppt

    - **位置变量**:在Shell脚本中,可以通过`$1`, `$2`, ...访问命令行参数。 - **间接引用**:使用`!{name}`或者`${!name}`来引用变量的值作为另一个变量的名称。 - **示例**: ```bash name="age" age=25 echo ...

    linux shell 简明教程.pdf

    - **子Shell**: 如果在父Shell中启动了一个新的Shell,则新Shell被称为子Shell。 - **示例**: 创建一个局部变量并在子Shell中尝试访问它,会发现无法访问。 **3. 环境变量及其设置** - **环境变量**: 在所有用户...

    linux常用shell脚本

    - **数据类型**:Shell中没有严格的数据类型,字符串、整数和浮点数都可以通过字符串方式处理。 - **环境变量**:如`PATH`、`HOME`等,影响着整个Shell会话的运行环境。 3. **控制结构** - **条件语句**:`if......

    shell学习记录

    在数值计算方面,Shell提供了基本的算术运算符,可以执行整数运算,但对于浮点数运算则可能需要借助其他工具如bc。循环结构则包括for循环、while循环和until循环,用于重复执行一组命令直到满足特定条件。字符串操作...

    分钟教你shell脚本入门PPT课件.pptx

    Linux 可以记忆以前输入过的命令,这些命令按照先后顺序记录在用户 Home 目录下的隐藏文件 .bash_history 中。 命令别名设置功能 命令别名设置功能可以避免过多输入。例如,可以将常用的命令 ls -al 设置别名为 lm...

    从0开始学习Shell高级编程视频课程第二部分1

    bc是一个强大的交互式或脚本式的计算器,可以处理浮点数运算,而在Shell中,typeset则用于声明变量的数据类型,这在进行精度要求较高的数值计算时非常有用。中括号`[]`在Shell中通常用于条件测试,但在某些特定情况...

    linux操作系统的shell相关编程命令

    8. **浮点数运算**:在Shell中处理浮点数通常需要借助外部工具,如`bc`命令。通过调用`bc`并传递表达式,可以进行浮点数运算并保留指定的小数位数。 9. **文件和目录操作**:创建目录使用`mkdir`命令,设置权限用`...

Global site tag (gtag.js) - Google Analytics