http://hi.baidu.com/syqust/item/978c943303d26d8bf4e4ad68

note:在shell的赋值=或者其他运算,不能用空格隔开

shell中的赋值和操作默认都是字符串处理,在此记下shell中进行数学运算的几个特殊方法,以后用到的时候可以来看,呵呵。
   1、错误方法举例
   a)
   var=1+1
   echo $var
   输出的结果是1+1,悲剧,呵呵
   
   b)
   var=1
   var=$var+1
   echo $var
   输出结果是1+1,依然悲剧,呵呵
   
   2、正确方法
   1)使用let
   var=1
   let "var+=1"
   echo $var
   输出结果为2,这次没有悲剧
   注意:
   a)经我测试let几乎支持所有的运算符,在网上看到一篇文章说“let不支持++、--和逗号、(、)”,但经我测试自加、自减、以及括号的优先级都得到了很好的支持
   b)方幂运算应使用“**”
   c)参数在表达式中直接访问,不必加$
   d)一般情况下算数表达式可以不加双引号,但是若表达式中有bash中的关键字则需加上
   e)let后的表达式只能进行整数运算

2)使用(())
   var=1
   ((var+=1))
   echo $var
   输出结果为2
   注意:
   (())的使用方法与let完全相同
   
   3)使用$[]
   var=1
   var=$[$var+1]
   echo $var
   输出结果位2
   注意:
   a)$[]将中括号内的表达式作为数学运算先计算结果再输出
   b)对$[]中的变量进行访问时前面需要加$
   c)$[]支持的运算符与let相同,但也只支持整数运算
   
   4)使用expr
   var=1
   var=`expr $var + 1`
   echo $var
   输出结果为2
   注意:
   a)expr后的表达式个符号间需用空格隔开
   b)expr支持的操作符有: |、&、<、<=、=、!=、>=、>、+、-、*、/、%
   c)expr支持的操作符中所在使用时需用\进行转义的有:|、&、<、<=、>=、>、*
   e)expr同样只支持整数运算
   
   5)使用bc(可以进行浮点数计算)
   var=1
   var=`echo "$var+1"|bc`
   echo $var
   输出结果为2
   介绍:
   bc是linux下的一个简单计算器,支持浮点数计算,在命令行下输入bc即进入计算器程序,而我们想在程序中直接进行浮点数计算时,利用一个简单的管道即可解决问题。
   注意:
   1)经我测试bc支持除位操作运算符之外的所有运算符。
   2)bc中要使用scale进行精度设置
   3)浮点数计算实例
   var=3.14
   var=`echo "scale=2;$var*3"|bc`
   echo $var
   输出结果为9.42
   
   6)使用awk(可已进行浮点数计算)
   var=1
   var=`echo "$var 1"|awk '{printf("%g",$1*$2)}'`
   echo $var
   输出结果为2
   介绍:
   awk是一种文本处理工具,同时也是一种程序设计语言,作为一种程序设计语言,awk支持多种运算,而我们可以利用awk来进行浮点数计算,和上面bc一样,通过一个简单的管道,我们便可在程序中直接调用awk进行浮点数计算。
   注意:
   1)awk支持除微操作运算符之外的所有运算符
   2)awk内置有log、sqr、cos、sin等等函数
   3)浮点数计算实例
   var=3.14
   var=`echo "$var 2"|awk '{printf("%g",sin($1/$2))}'`
   echo $var
   输出结果为1

shell 中数学计算总结相关推荐

  1. Java中数学计算的相关方法

    1:Math类 2.BigInteger类  3.BigDecimal类 BigInteger bi = new BigInteger("12433241123");BigDeci ...

  2. shell中的数学运算

    一.shell中支持的算术 算术运算符 说明/含义 +.- 加法(或正号).减法(或负号) *./.% 乘法.除法.取余(取模) ** 幂运算 ++.– 自增和自减,可以放在变量的前面也可以放在变量的 ...

  3. linux运算_linux中的计算【转】

    shell中的赋值和操作默认都是字符串处理,在此记下shell中进行数学运算的几个特殊方法,以后用到的时候可以来看,呵呵 1.错误方法举例 a) var=1+1 echo $var 输出的结果是1+1 ...

  4. GIS开发:地图中的数学计算(Mercator)

    引言 在地图的开发中,会涉及到各种的数学计算,比如距离.角度计算等,经纬度坐标系的情况下,地图使用的坐标是经纬度的形式,单位是度,而计算距离的时候,结果是米制单位,这就需要其中有一个转换,或者存在对应 ...

  5. 【JavaScript】数学计算的函数与数字的格式化

    JavaScript中使用5中数学计算符号,+,-,*,/,% 常用的函数 Math.ceil 向上取整,Math.ceil(4.2)的返回值为5 Math.floor  向下取整,Math.floo ...

  6. Shell脚本笔记(三)shell中的数学计算

    shell中的数学计算 一.使用方括号 #!/bin/bash a=10 b=29 c=88res=$[$a * ($c-$b)] echo $res 二.使用(()) echo $((1+9)) ( ...

  7. shell中的数学计算

    shell中的赋值和操作默认都是字符串处理,在此记下shell中进行数学运算的几个特殊方法,以后用到的时候可以来看,呵呵.    1.错误方法举例    a)    var=1+1    echo $ ...

  8. linux shell数学计算器,技术|使用 GNU bc 在 Linux Shell 中进行数学运算

    在 shell 中使用 bc 更好地做算数,它是一种用于高级计算的数学语言. 大多数 POSIX 系统带有 GNU bc,这是一种任意精度的数字处理语言.它的语法类似于 C,但是它也支持交互式执行语句 ...

  9. linux中bc用法英文,使用GNU bc在Linux Shell中进行数学运算

    在 shell 中使用 bc 更好地做算数,它是一种用于高级计算的数学语言. 大多数 POSIX 系统带有 GNU bc,这是一种任意精度的数字处理语言.它的语法类似于 C,但是它也支持交互式执行语句 ...

最新文章

  1. php制作明信片,用PS如何制作明信片?PS制作明信片图文介绍
  2. free崩溃原因2021
  3. Android 创建其它应该程序的上下文对象
  4. 2017-10-17 开源非英文关键词编程语言
  5. UNIX(多线程):28---双buffer “无锁” 设计
  6. java线程interu_Intel 10nm服务器U首曝:多线程性能提升118%
  7. 【Elasticsearch】es CPU热点线程 HotThreads 源码解析
  8. Java普通代码块,构造代码块,静态代码块区别,执行顺序的代码实例
  9. 专注是最好的修行,一个80后IT从业者14年的成长与感悟
  10. 那么多GAN哪个好?谷歌大脑泼来冷水:都和原版差不多 | 论文
  11. cobbler之详细配置
  12. matlab fprintf_工程优化设计与Matlab实现——十进制编码遗传算法
  13. ubuntu安装visio2010_ubuntu 一个Linux脚本搞定常用软件的安装
  14. 屏幕录制软件哪个好 如何录制电脑在线视频
  15. 为什么视锥剔除重要,却又不重要 | Why Frustum Culling Matters, and Why It‘s Not Important
  16. 利用teigha制作dwg无单位块工具开发
  17. 计算机的计算百分比的函数是哪个好,excel用函数计算百分比计算的方法
  18. 网易邮箱显示服务器返回错误,企业退信的常见问题?
  19. Java SE基础知识点总结(四)
  20. linux 禁用usb驱动程序,如何使用musb_hdrc Linux驱动程序断开特定的USB设备?

热门文章

  1. 八十六、从拓扑排序探究有向图
  2. 六十三、SpringBoot中的日志框架SLF4j的使用
  3. 工程制图 (装配图)
  4. 三十八、Scrapy 下载中间件Middleware
  5. 据调查95%以上的AI从业者不具备修改模型或者提出新模型的技术能力
  6. 调多大的角度 计算几何
  7. python图像检测_如何用Python检测图像中的矩形项
  8. c语言编译器_学C语言写自己的K语言:编译器词法分析。
  9. springboot图书管理怎么实现借书时间到期提醒_智能机器人充当图书管理员,看看它能干嘛...
  10. linux cant open file for writing,linux 安装rz sz lrz lsz sftp: cannot open 文件名称 to write 报错解决...