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. (转)Linux基础------Shell数值计算的几种方法

    Linux基础------Shell数值计算的几种方法 原文:http://blog.csdn.net/fu_wayne/article/details/21620639 在Linux下总会遇到数值计 ...

  2. shell的数值计算,小数计算

    shell脚本中,可以进行数值计算, 如加减乘除,通过expr.let.(())等完成,文章介绍:http://blog.csdn.net/longshenlmj/article/details/14 ...

  3. shell脚本--数值计算

    原生bash不支持简单的数学运算,即使是最简单的加减乘除 但是,可以使用$[]和expr来实现整数运算 如果要实现小数运算,可以使用bc命令 使用$[]来实现: #!/bin/bash #文件名:te ...

  4. shell编程——变量的数值计算

    在shell脚本中,有时候会需要对数值类型的变量进行计算,通常我们用的是(()) [root@localhost collect]# ((a=1+2)) [root@localhost collect ...

  5. Shell中的数值计算

    #!/bin/bash echo "please input number:" read n a=`expr $n / 100` #a1=`expr $n - $a * 100` ...

  6. shell 变量的数值计算实践 expr

    expr(evaluate(求值)expressions(表达式))命令既可以用于整数运算,也可以用于相关字符串长度.匹配等的运算处理 expr 用做计算 必须有一个空格才会计算 [root@salt ...

  7. SHELL (4) —— 变量的数值计算实践

    摘自:Oldboy Linux运维——SHELL编程实战 利用(())双括号进行比较及判断: [root@yeebian ~]# echo $((3<8)) 1 #1表示真. [root@yee ...

  8. shell基础--变量的数值计算

    变量的数值计算 1.$((表达式)) (1).实验1 [root@~_~ day4]# cat test.sh #!/bin/bash a=6 b=2 echo "a-b=$(($a-$b) ...

  9. Shell编程-04-Shell中变量数值计算

    目录 算术运算符 算术运算命令 数值运算用法 算术运算符     在任何一门形式的语言中均会存在算术运算的情况,Shell常见的运算符如下所示: 运算符 含义 + - * / % 加 减 乘 除 求余 ...

随机推荐

  1. C#-----------------------------回收机制中Destroy与null的作用

    关于Object被Destroy之后,该Object的原引用==null的问题 标签: unityc#继承对象 2017-01-23 23:32 506人阅读 评论(0) 收藏 举报  分类: Uni ...

  2. 嵌入式开发之uart---编程

    下位机往上位机发送串口数据都是漫漫的这个包,但是win上位机往下位机发数据时,得分包大小,下位机收到的不一从1到200左右,大部分为100左右 http://bbs.csdn.net/topics/3 ...

  3. MySQL binlog日志操作详解

    MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的. bi ...

  4. Memcached Java Client比较

    JAVA客户端调用memcached比较 Memcached 客户端程序三种API的比较 Java开发中的Memcache原理及实现(五)Memcached客户端

  5. 【WP8】同步执行异步代码

    微软的StorageFile只支持异步的方式进行文件操作,我之前也封装过一个StorageHelper,但是当所有的方法都是异步的时候也带来一些问题 1.比如我们不能在构造函数调用异步代码(等待), ...

  6. scp 链接文件的问题 + tar

    将本地的文件上传到服务器上,希望保持相对链接关系.(链接文件和被链接文件都在同一的目录下) 使用scp进行传输时,链接关系不会保存,所以需要解决下.(当然可以使用rsync或tar解决,但是rsync ...

  7. DEFINE_PER_CPU,如何实现“数组”

    引述自:http://www.unixresources.net/linux/clf/linuxK/archive/00/00/47/91/479165.html Kevin.Liu 的<调度器 ...

  8. mysql日期问题

    1.在java中,在当前时间的基础上增加30天.Date d = new Date();   SimpleDateFormat df = new SimpleDateFormat("yyyy ...

  9. SpringMVC使用@ResponseBody时返回json的日期格式及可能产生的问题

    http://blog.csdn.net/z69183787/article/details/40375831 遇到的问题: 1 条件: 1.1.表单里有两个时间参数,都是作为隐藏项随表单一起提交: ...

  10. js九九乘法表的应用

    <html> <head> <meta charset=utf-8" /> <title>js九九乘法表</title> < ...