专栏首页null的专栏Shell编程——Shell中的数学运算

Shell编程——Shell中的数学运算

在Linux Shell中进行数学运算,通常可以使用的运算符有:

  • 简单运算:
    • let
    • []
    • (())
  • 高级运算:
    • expr
    • bc

1、let命令

let命令是bash内置命令,可以实现简单的算术以及逻辑运算,通过help let命令,可以查询到let命令的具体使用方法。

使用方法:

#!/bin/sh

i=10
echo $i

let i=i+10 #20
echo $i

let "i=i+100" #120
echo $i

2、[]

[]相当于let命令,其用法如下:

#!/bin/sh

i=10
echo $i

i=$[i+10] #20
echo $i

i=$[i+100] #120
echo $i

3、(())

(())等价于[],其具体用法如下:

#!/bin/sh

i=10
echo $i

i=$((i+10)) #20
echo $i

i=$((i+100)) #120
echo $i

4、expr

expr同样可以用来进行基本的算术运算。

注意:变量与运算符之间必须使用空格作为分隔符。

具体用法如下:

#!/bin/sh

i=10
echo $i

i=`expr $i + 10` #20
echo $i

i=`expr $i + 100` #120
echo $i

若是在变量与运算符之间没有空格,代码如下所示:

#!/bin/sh

i=10
echo $i

i=`expr $i+10` #10+10
echo $i

i=`expr $i+100` #10+10+100
echo $i

最终输出的是:

10
10+10
10+10+100

5、bc

若要在计算的过程中控制计算的精度,就得使用到bc命令。bc命令是一个支持精确的浮点运算的高级计算器,支持数学函数调用。

对于如下的计算:

#!/bin/sh

i=10
echo $i
j=3;
echo $j

m=`expr $i / $j` #3
echo $m

n=`echo "scale=9; $i / $j" | bc` #3.333333333
echo $n

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Shell编程——Shell中的数学运算

    在Linux Shell中进行数学运算,通常可以使用的运算符有: 简单运算: let [] (()) 高级运算: expr bc 1、let命令 let命令...

    zhaozhiyong
  • 图解机器学习总结——2、回归

    一、回归的定义 image.png 二、最小二乘学习法 image.png 三、最小二乘法实例 对于如下的数据集: ? 画图的代码如下: #coding:UT...

    zhaozhiyong
  • 情感分析——深入snownlp原理和实践

    以上是官方对snownlp的描述,简单地说,snownlp是一个中文的自然语言处理的Python库,支持的中文自然语言操作包括:

    zhaozhiyong
  • Shell编程——Shell中的数学运算

    在Linux Shell中进行数学运算,通常可以使用的运算符有: 简单运算: let [] (()) 高级运算: expr bc 1、let命令 let命令...

    zhaozhiyong
  • 「R」通过字符串创建公式

    通过字符串的方式来创建公式是非常有用的。这通常用于需要将公式参数当做字符串传入函数中

    王诗翔呀
  • 基于 HTML5 的 WebGL 3D 档案馆可视化管理系统

    档案管理系统是通过建立统一的标准以规范整个文件管理,包括规范各业务系统的文件管理的完整的档案资源信息共享服务平台,主要实现档案流水化采集功能。为企事业单位的档案...

    HT_hightopo
  • 人工智能:高速

    前几天,编辑君为大家推送的「人工智能:缘起」,其中有一条留言提到达特茅斯会议。 ? 是的,让人工智能真正走进科学家视野的正是达特茅斯会议。 1955年夏天,符号...

    企鹅号小编
  • hdu1052

    @坤的
  • 如何在RTL级别电路建模优化congestion问题?

    在最初芯片设计之前主要考虑PPA,即power、performance和area,但是实际项目中还存在仿真、测试及后端实现的问题。

    AsicWonder
  • Docker+Jenkins+Gitlab+Django应用部署实践

    在互联网应用快速更新迭代的大背景下,传统的人工手动或简单脚本已经不能适应此变化,此时Devops为我们提供了良好的解决方案,应用好CI/CD可以大大的方便我们的...

    KaliArch

扫码关注云+社区

领取腾讯云代金券