`
brucectl
  • 浏览: 179129 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SHELL下的数字比较及计算

阅读更多
比较:
方法一: if [ ${A} -lt ${B} ]; then ...
这是最基本的比较方法,使用lt(小于),gt(大于),le(小于等于),ge(大于等于),优点:还没发现;缺点:只能比较整数,使用lt,gt等不直观
方法二: if ((${A} < ${B})) then ...
这是CShell风格比较,优点:不用使用lt,gt等难记的字符串;缺点:还是只能比较整数
方法三: if (echo ${A} ${B} | awk '!($1>$2){exit 1}') then ...
这是使用awk比较,优点:可以比较小数;缺点:表达式太复杂,难记
方法四: if (echo ${A} - ${B} | bc -q | grep -q "^-"); then ...
这是使用bc计算比较,优点:可以比较小数;缺点:表达式更复杂,难记

计算:
方法一:typeset C=$(expr ${A} + ${B});
SHELL中的基本工具,优点:方便检测变量是否为数字;缺点:只能计算整数,且只能计算加减法,不能计算乘除法
方法二:let "C=${A}+${B}"; 或 let "C=A+B"
内嵌命令计算,优点:能计算乘除法及位运算等;缺点:只能计算整数
方法三:typeset C=$((A+B))
CShell风格的计算,优点:能计算乘除法及位运算等,简介,编写方便;缺点:不能计算小数
方法四:typeset C=${echo ${A} ${B} | awk '{print $1+$2}')
使用awk计算,优点:能计算小数,可以实现多种计算方式,计算灵活;缺点:表达式太复杂
方法五:typeset C=${echo ${A} + ${B} | bc -q)
使用awk计算,优点:能计算小数,计算方式比awk还多,计算灵活;缺点:表达式太复杂,小数点后面的位数必须使用scale=N来设置,否则可能会将结果截断为整数

分享到:
评论

相关推荐

    linux shell 实现IP和数字的转换

    在某些情况下,我们可能需要在两者之间进行转换,以适应不同的应用场景。下面我们将详细介绍如何使用Linux Shell实现这两种IP地址形式的转换。 首先,我们要了解IP地址的十进制表示。一个IP地址由4个八位字节组成,...

    Linux Shell字符串比较

    #### 三、Shell数字比较举例 在实际应用中,Shell脚本可能需要处理更为复杂的数字比较场景,以下是一些常用的比较方法: ##### 方法一:基本的比较方法 ```bash if [ ${A} -lt ${B} ]; then echo "A is less ...

    SHELL脚本练习 写一个脚本,利用循环计算10的阶乘

    在这个练习中,我们将编写一个SHELL脚本,利用循环计算10的阶乘。脚本代码如下: ```bash #!/bin/sh factorial=1 for a in `seq 1 10` do factorial=`expr $factorial \* $a` done echo "10! = $factorial" ``` 这...

    shell (bash) 比较运算符

    算术运算比较用于比较数字大小。这些比较通常用于数值逻辑判断。 - **`num1 -eq num2`**:如果 `num1` 等于 `num2`,则返回真值。例如 `[ 3 -eq $mynum ]`,此命令用于判断变量 `$mynum` 的值是否等于 `3`。 - **`...

    计算1000以内数字的和

    使用shell编程,计算1000以内数字的和,linux环境下运行。

    shell实现netmask掩码和cidr掩码位转换1

    该函数的实现原理是将 Netmask 掩码的四个八进制数转换为二进制数,然后计算出最重要的 bits(即 leading ones)。例如,对于 Netmask 掩码 255.255.192.0,mask2cdr 函数将其转换为 CIDR 掩码位 18。 cdr2mask ...

    shell输出1-n之间的回文数

    Shell脚本,实现输入一个正整数n,打印从1-n之间的回文数,并统计个数

    shell运算符介绍和例子

    在shell脚本中,使用shell运算符可以实现各种计算、比较和逻辑判断等操作,使得shell脚本更加灵活和强大。 此外,shell还提供了进制转换的功能,可以将数字从一种进制转换到另一种进制,例如: $ echo $((013)) # ...

    Linux环境下shell编程

    其中`[ ]`表示测试条件,可以用来比较字符串、数字或者检测文件状态等。 2. **条件表达式**: - `[-f "somefile"]`: 检查是否为普通文件。 - `[-x "/bin/ls"]`: 检查是否具有执行权限。 - `[-n "$var"]`: 检查...

    shell脚本编程100例

    读者可以使用shell脚本编写一个打印乘法口诀的程序,实现自动化数学计算。 使用rsync备份数据 shell脚本可以用于自动备份数据,例如使用rsync命令来备份文件。读者可以使用shell脚本编写一个使用rsync备份数据的...

    ChinaUnix论坛Linux Shell版精华帖合集

    这部分可能会讲解date命令的用法,以及如何在脚本中进行日期和时间的计算,例如获取当前时间、比较日期、计算两个日期之间的差值等。 四、数值计算: 虽然Shell主要处理文本,但它也支持一些基本的数值计算。这部分...

    linux实验报告-shell编程-平方与菜单实现整理.pdf

    当用户按下数字 5 时,则退出该菜单 shell 程序的执行。 四、实验报告内容 实验报告内容包括平方值计算和菜单实现的 shell 脚本程序,以及实验截图。 五、分析与讨论 在实验过程中,我们遇到了一个问题,就是在...

    shell算数运算

    算术运算UNIX shell范例精解。整数运算(declare和let命令) declare命令 可以用declare –i命令定义整型变量。如果给整型变量赋一个字符串值,则bash将把变量赋值为0。可以对已定义的整型变量执行算术运算(如果变量未...

    实验六_shell编程.docx

    二、观察比较:UNIX shell 脚本与 Linux shell 脚本的格式区别 在这个实验中,我们需要观察 UNIX shell 脚本和 Linux shell 脚本的格式区别。这两个 shell 脚本语言都用于编写 shell 脚本,但是它们之间存在一些...

    shell中的 case in 用法

    expression是表达式(既可以是一个变量,一个数字,一个字符串,还可以是一个数学计算表达式,或者是命令的执行结果,只要可以得到expression的值就行) pattern是匹配模式(一个数字,一个字符串,或者一个简单的...

    shell经典的面试题目

    这个面试题涉及到了shell中的数值比较。`top`命令用于监控系统状态,而这里要求比较两次`top`命令执行后的CPU使用率。通过`awk`提取第3行的第二个字段,然后使用`sed`去除非数字字符,得到纯数字的CPU使用率。`expr...

    shell所学中的心得

    变量名以字母或者下划线开头,后面接任意长度的字母、数字或下划线。例如:`first = hello`。 命令执行 Shell 命令可以有选项 option,分号`;`可用来分割同一行里的多条命令。如果使用的是`&`符号而不是分号,则 ...

    几个shell编程的小例子

    2. **求和**:这个例子可能涉及到计算一系列数字的总和。在Shell中,可以使用read命令从用户那里获取输入,或者直接在脚本中定义一个数字数组。然后,可以使用for循环遍历数组,并将每个元素累加到一个变量中。最后...

    Shell脚本中判断变量为数字的3种方法

    ### Shell脚本中判断变量为数字的3种方法 在Shell脚本开发中,经常会遇到需要判断一个变量是否为数字的情况。这样的需求通常出现在输入验证、数据处理等场景中。本文将详细介绍三种在Shell脚本中判断变量是否为数字...

    SHELL下ITOAN實現代码

    "SHELL下ITOAN实现代码"是一个关于使用Shell脚本来实现自定义数字打印功能的项目,特别是针对基数、位宽和长度的定制化需求。在批处理场景中,这样的功能非常实用,可以方便地处理和展示数据。 首先,"itoa"是将...

Global site tag (gtag.js) - Google Analytics