shell中的赋值和操作默认都是字符串处理。

1)使用let(只能进行整数运算)
var=1
let "var+=1"
echo $var
输出结果为2
注意:
a)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中把浮点数转换为整数:

var=4.5
方法一:
echo ${var%.*} #这个是直接去除小数点及后面所有内容,只用于bash
方法二:
echo $var | awk -F. '{print $1}' #以小数点为分隔符取第一个字段(直接去除小数点及后面所有内容)
方法三:
echo $var | awk '{print int($0)}' #awk中可直接使用C函数取整(直接去除小数点及后面所有内容)
方法四:
echo "scale=0;$var/1"|bc -l #用bc计算(直接去除小数点及后面所有内容)
方法五:
printf "%.0f\n" $var #四舍五入

REF:

http://www.jb51.net/article/31232.htm

http://blog.csdn.net/caoshuming_500/article/details/9569831

Shell中数学计算/运算的更多相关文章

  1. shell 中数学计算总结

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

  2. Shell之数学计算

    本博客已经迁往http://www.kemaswill.com/, 博客园这边也会继续更新, 欢迎关注~ 数学计算是Shell中比较常用的一种操作,  但是因为shell中所有的变量都默认为字符串, ...

  3. Shell基础(二):Shell中的数值运算、条件测试操作、使用if选择结构

    一.Shell中的数值运算 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 使用expr.$[ ].let等整数运算工具:定义变量X=1234,然后计算X与78 ...

  4. shell中的数值运算

    By francis_hao    Oct 2,2017   本文摘录自bash的man手册.   算数运算相关的形式 形式 含义 ((expression)) expression按照下面描述的算术 ...

  5. 通过shell进行数学计算

    对于基本运算,可以使用let, $(())和$[] 对于高级运算,使用expr和bc这两个工具 [hupeng@hupeng-vm shell]$n1= [hupeng@hupeng-vm shell ...

  6. Shell中的算数运算

    加法 echo $((a+b)) expr $a + $b let "a=1+2";echo $a a=;let "a+=10";echo $a echo &q ...

  7. shell中变量计算

    year=44 1.let,不需要$引用变量 let m=year+3 echo $m 2.(()) m=$((year+3)) 3.[  ],注意两边一定要有空格 m=$[ year+3 ] 4. ...

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

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

  9. linux中的计算【转】

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

随机推荐

  1. React ES5 (createClass) 和 ES6 (class)

    https://www.w3cplus.com/react/react-es5-createclass-vs-es6-classes.html http://blog.csdn.net/shaleil ...

  2. 性能百万/s:腾讯轻量级全局流控方案详解【转自Wetest】

    阿里用的方案是在nginx中配置限流(限流功能模块是自己开发的),流量统计线上是有监控打通的,具体的限流值是通过线上流量表现+线下性能测试(模拟线上场景)测试得出的. 全新的全局流控实现方案,既解决了 ...

  3. Core Services层

    本文转载至 http://jingyan.baidu.com/article/cdddd41c57360853cb00e124.html Core Services层是系统很多部分的基础部分,也许应用 ...

  4. NetWorkUtil

    import java.io.IOException; import java.io.UnsupportedEncodingException; import org.apache.http.Http ...

  5. iOS学习笔记(十)——iOS真机调试

    前面一直使用模拟器运行,今天使用了真机调试,这一篇介绍一下真机调试.真机调试需要99$注册,如果有注册过的账号,也可以使用注册账号邀请你加入一个账号下,注册账号可以给你分配权限,我也是使用的邀请成为开 ...

  6. MVC架构模式概述

    MVC MVC概述: Model–view–controller (MVC) is a software architectural pattern for implementing user int ...

  7. the core of Git is a simple key-value data store The objects directory stores all the content for your database

    w https://git-scm.com/book/en/v1/Git-Internals-Plumbing-and-Porcelain Git is a content-addressable f ...

  8. 任务05—学习 MARKDOWN 语言

    我的简历地址: https://github.com/jinxiaohang/MyResume/blob/master/ForJavaJob.md 本任务主要目的掌握markdown. 1.首先是工具 ...

  9. MySQL将语句写入到binlog二进制日志中

    由于二进制日志是公共资源,所有线程都要写二进制日志,所以一定要避免两个线程同时更新二进制日志.因此,在事件组写二进制日志时,二进制日志将获得一个互斥锁LOCK_log,然后在事件组写完后释放,由于服务 ...

  10. 数据库质疑修复(SUSPECT)总结,DBCC报错

    当SQL SERVER数据库状态为质疑(SUSPECT)状态时,我们可以用以下方法来处理: DBCC报错 1. 修改数据库为紧急模式:ALTER DATABASE DBName SET EMERGEN ...