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 条评论
登录 后参与评论

相关文章

来自专栏Hongten

python开发_re和counter

=============================================

8020
来自专栏黑白安全

命令执行漏洞简单讲述

如果页面中存在这些函数并且对于用户的输入没有做严格的过滤,那么就可能造成远程命令执行漏洞

17540
来自专栏海天一树

小朋友学C语言(30):局部变量和全局变量

(一)局部变量 在某个函数或块的内部声明的变量称为局部变量。它们只能被该函数或该代码块内部的语句使用。局部变量在函数外部是不可知的。下面是使用局部变量的实例。在...

39680
来自专栏DT乱“码”

java asm 框架 浅析

什么是asm呢?asm是assembly的缩写,是汇编的称号,对于java而言,asm就是字节码级别的编程。   而这里说到的asm是指objectweb as...

27890
来自专栏coding for love

JS入门难点解析5-变量对象

(注1:如果有问题欢迎留言探讨,一起学习!转载请注明出处,喜欢可以点个赞哦!) (注2:更多内容请查看我的目录。)

13540
来自专栏Felix的技术分享

JVM的简单实现

18270
来自专栏逆向技术

逆向知识第十二讲,识别全局变量,静态全局变量,局部静态变量,以及变量.

         逆向知识第十二讲,识别全局变量,静态全局变量,局部静态变量,以及变量. 一丶认识全局的 (静态变量 全局变量) 高级代码: int RetIn...

231100
来自专栏移动开发的那些事儿

JVM的类加载机制

其中,加载,验证,准备,初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序开始,而类的解析不一定,类的解析可能在初始化阶段之后再开始,这是为了支...

75130
来自专栏小勇DW3

类加载过程中几个重点执行顺序整理

1、 JVM会先去方法区中找有没有相应类的.class存在。如果有,就直接使用;如果没有,则把相关类的.class加载到方法区

35920
来自专栏Python爬虫与数据挖掘

一篇文章助你理解Python2中字符串编码问题

前几天给大家介绍了unicode编码和utf-8编码的理论知识,没来得及上车的小伙伴们可以戳这篇文章:浅谈unicode编码和utf-8编码的关系。下面在Pyt...

9930

扫码关注云+社区

领取腾讯云代金券