由于程序需要,我要判断一个浮点数是否大于另一个浮点数。
大概情况描述如下:
变量 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脚本中处理浮点数的运算和比较是一个常见的需求,尤其是在自动化任务和系统监控中。由于Bash shell本身并不支持浮点数运算,因此我们需要借助其他工具,如`bc`和`awk`。 `bc`是一个任意精度的计算器语言,它...
bash-shell无法处理浮点数
这个shell是来判断输入的数字是否为合理的浮点数 实现代码如下: #!/bin/sh # validfloat -- Tests whether a number is a valid floating-point value. # Note that this script cannot accept scientific (1.304...
Shell提供了多种数据类型,包括字符串、整数、浮点数等。变量可以通过赋值语句或let命令来声明和赋值。 4. 控制结构 控制结构是Shell脚本中用于控制执行流程的语句,包括if语句、case语句、for循环、while循环等。...
对于初学者和经验丰富的管理员来说,理解和掌握在Shell脚本中如何比较字符串和数值都是至关重要的技能。本教程将深入探讨这一主题,帮助你更好地利用Shell进行条件判断。 ### 字符串比较 在Shell脚本中,我们可以...
在Bash Shell中,变量的定义无需指定类型,它们默认被当作字符串处理,这意味着无论赋予变量的是整数、浮点数还是其他类型,都会被当作字符串存储。这与C/C++等语言不同,那些语言有明确的数据类型如整型、浮点型、...
- **5.6 在当前进程中执行脚本**:提供了在当前 shell 进程中执行脚本的方法,而不是启动一个新的子进程。 - **5.7 包别名**:讨论了如何为软件包或应用程序创建别名。 #### 六、一些简单的例子 本章提供了几个简单...
在Linux环境中,Shell脚本是一种强大的工具,可以用来自动化各种任务。对于初学者来说,创建一个简单的计算器模拟器是学习Shell脚本语法和流程控制的良好起点。在这个"shell模拟实现计算器加减乘除demo"中,我们将...
在Shell编程中,变量替换和测试是至关重要的概念。Shell是一种解释型的脚本语言,广泛应用于Linux和Unix系统中,用于自动化系统管理任务。在Shell中,变量用于存储数据,而变量替换则是提取、修改或操作这些变量值的...
《Shell编程范例之数值运算》由TinyLab原创,该文档属于《Shell编程范例序列》的第一章,主要介绍了在Shell编程中如何进行基本的数值运算,包括整数和浮点数的运算,以及如何使用Shell脚本来产生指定范围的随机数和...
4. 布尔(Boolean):虽然Shell没有直接的布尔类型,但可以通过比较表达式(如`[[ -z $var ]]`或`[[ $var -eq $othervar ]]`)来模拟布尔值。 5. 文件描述符(File Descriptor):在Unix-like系统中,文件描述符...
- **位置变量**:在Shell脚本中,可以通过`$1`, `$2`, ...访问命令行参数。 - **间接引用**:使用`!{name}`或者`${!name}`来引用变量的值作为另一个变量的名称。 - **示例**: ```bash name="age" age=25 echo ...
- **子Shell**: 如果在父Shell中启动了一个新的Shell,则新Shell被称为子Shell。 - **示例**: 创建一个局部变量并在子Shell中尝试访问它,会发现无法访问。 **3. 环境变量及其设置** - **环境变量**: 在所有用户...
- **数据类型**:Shell中没有严格的数据类型,字符串、整数和浮点数都可以通过字符串方式处理。 - **环境变量**:如`PATH`、`HOME`等,影响着整个Shell会话的运行环境。 3. **控制结构** - **条件语句**:`if......
在数值计算方面,Shell提供了基本的算术运算符,可以执行整数运算,但对于浮点数运算则可能需要借助其他工具如bc。循环结构则包括for循环、while循环和until循环,用于重复执行一组命令直到满足特定条件。字符串操作...
Linux 可以记忆以前输入过的命令,这些命令按照先后顺序记录在用户 Home 目录下的隐藏文件 .bash_history 中。 命令别名设置功能 命令别名设置功能可以避免过多输入。例如,可以将常用的命令 ls -al 设置别名为 lm...
bc是一个强大的交互式或脚本式的计算器,可以处理浮点数运算,而在Shell中,typeset则用于声明变量的数据类型,这在进行精度要求较高的数值计算时非常有用。中括号`[]`在Shell中通常用于条件测试,但在某些特定情况...
8. **浮点数运算**:在Shell中处理浮点数通常需要借助外部工具,如`bc`命令。通过调用`bc`并传递表达式,可以进行浮点数运算并保留指定的小数位数。 9. **文件和目录操作**:创建目录使用`mkdir`命令,设置权限用`...