对于基本运算,可以使用let, $(())和$[]

对于高级运算,使用expr和bc这两个工具

[hupeng@hupeng-vm shell]$n1=
[hupeng@hupeng-vm shell]$n2=
[hupeng@hupeng-vm shell]$let res=n1+n2 #let的使用
[hupeng@hupeng-vm shell]$echo $res [hupeng@hupeng-vm shell]$let res=n1*n2
[hupeng@hupeng-vm shell]$echo $res [hupeng@hupeng-vm shell]$let res+= #let 支持+=, -=, *=,/=,%=
[hupeng@hupeng-vm shell]$echo $res [hupeng@hupeng-vm shell]$let res-=
[hupeng@hupeng-vm shell]$echo $res [hupeng@hupeng-vm shell]$let res/=
[hupeng@hupeng-vm shell]$echo $res [hupeng@hupeng-vm shell]$let res++ #let支持++,--操作
[hupeng@hupeng-vm shell]$echo $res [hupeng@hupeng-vm shell]$let --res
[hupeng@hupeng-vm shell]$echo $res [hupeng@hupeng-vm shell]$a=
[hupeng@hupeng-vm shell]$b=
[hupeng@hupeng-vm shell]$res=$[ a * b] # $[]的使用
[hupeng@hupeng-vm shell]$echo $res [hupeng@hupeng-vm shell]$res=$[ $res / + ] # []中也可以使用$前缀
[hupeng@hupeng-vm shell]$echo $res [hupeng@hupeng-vm shell]$res=$(( a + b )) # $(()使用 前面要加$
[hupeng@hupeng-vm shell]$echo $res [hupeng@hupeng-vm shell]$res=`expr + ` # expr的使用
[hupeng@hupeng-vm shell]$res=$(expr $a + $b)
[hupeng@hupeng-vm shell]$res=$(expr $a * $b)
expr: syntax error
[hupeng@hupeng-vm shell]$res=$(expr $a \* $b) # 乘号要用\*表示

以上只能进行整数运算,要进行浮点数运算,需要使用bc

[hupeng@hupeng-vm shell]$echo "2 * 2.3" | bc
4.6
[hupeng@hupeng-vm shell]$a=
[hupeng@hupeng-vm shell]$echo "$a * 1.5" | bc
4.5
[hupeng@hupeng-vm shell]$#其他参数可以置于要执行的具体操作之前,同时以分号作为定界符,通过stdin传给bc
[hupeng@hupeng-vm shell]$echo "scale=1;2 / 3" | bc #scale用来指定精度(小数点后的位数)
.
[hupeng@hupeng-vm shell]$echo "scale=2;2 / 3" | bc
.
[hupeng@hupeng-vm shell]$echo "scale=3;2 / 3" | bc
.
[hupeng@hupeng-vm shell]$n= #10进制
[hupeng@hupeng-vm shell]$echo "obase=2;$n" | bc #转换为二进制输出 [hupeng@hupeng-vm shell]$n=
[hupeng@hupeng-vm shell]$echo "obase=10;ibase=2;$n" | bc # 将二进制转化为10进制输出 [hupeng@hupeng-vm shell]$echo "sqrt(100)" | bc #求平方根 [hupeng@hupeng-vm shell]$echo "10 ^ 3" | bc #求幂 [hupeng@hupeng-vm shell]$echo "sqrt(-1)" | bc #不支持复数
Runtime error (func=(main), adr=): Square root of a negative number

通过shell进行数学计算的更多相关文章

  1. Shell之数学计算

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

  2. shell 中数学计算总结

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

  3. Shell中数学计算/运算

    shell中的赋值和操作默认都是字符串处理. 1)使用let(只能进行整数运算)var=1let "var+=1"echo $var输出结果为2 注意:a)let几乎支持所有的运算 ...

  4. Shell脚本之六 数学计算

    前面一节Shell篇之五 基本运算符介绍了常见的 Shell 算术运算符,这节介绍 Shell 的数学计算.Shell 和其它编程语言不同,Shell 不能直接进行算数运算,必须使用数学计算命令. 下 ...

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

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

  6. shell执行数学运算

    整数: expr let $(()) $[] 浮点数: bc 1.使用expr ♦参与运算的成员和运算符之间必须有一个空格: ♦对于那些容易被shell错解的,在它们传入expr命令之前,需要使用sh ...

  7. 理工科应该的知道的C/C++数学计算库(转)

    理工科应该的知道的C/C++数学计算库(转) 作为理工科学生,想必有限元分析.数值计算.三维建模.信号处理.性能分析.仿真分析...这些或多或少与我们常用的软件息息相关,假如有一天你只需要这些大型软件 ...

  8. shell变量数学运算

    shell变量数学运算 #!/bin/sh # 本脚本说明shell脚本中变量运算的用法 # 错误的用法var=1var=$var+1echo $var 输出:1+1 # 第一种用法,letvar=1 ...

  9. C语言中几个常用数学计算函数ceil(), floor(), round()的用法

    最近在实现算法的过程中,遇到了使用几个数学计算函数,感觉挺有意思,就记下来 方便以后使用. ceil(x)返回不小于x的最小整数值(然后转换为double型). floor(x)返回不大于x的最大整数 ...

随机推荐

  1. Unity 3D连接MySQl数据库

    对数据库各种操作已经熟练,但是一遇到数据库问题还是头大,最近使用unity3d开发一款小型网络社区,遇到了各种问题分享一下以供大家参考: 以前使用的是SQL,第一次用MySQL,在网上随便下了一个,安 ...

  2. zabbix项目实践

    一,Zabbix生产环境监测案例概述 1.1 项目规划 [x] :主机分组 交换机 Nginx Tomcat MySQL Apache PHP-fpm redis(也有状态页, 自己研究) memca ...

  3. sublime text3的快捷键

    Ctrl + Shift + P    调出命令板(Command Palette) Ctrl + `    调出控制台 Ctrl + D    选择当前光标所在的词并高亮该词所有出现的位置,再次 C ...

  4. C++11标准的智能指针、野指针、内存泄露的理解(日后还会补充,先浅谈自己的理解)

    1.野指针的概念.成因以及避免 首先,来说说什么是野指针,所谓野指针就是一个指向未申请访问受限的内存区域或者已经删除了的对象的指针. 什么意思呢?就是本来一个指针指向一个对象.一块内存,但是由于程序( ...

  5. oracle获取执行计划及优缺点 详解

    一.获取执行计划的6种方法(详细步骤已经在每个例子的开头注释部分说明了):1. explain plan for获取: 2. set autotrace on : 3. statistics_leve ...

  6. ASI 实现注册方法的小例子(get和post方式)

    服务端文档: 注册 /my/register.php 输入参数: 参数说明: username 用户名 password 密码 email 邮箱 成功返回值:{"code": &q ...

  7. SEL_CallFuncN,SEL_CallFuncO等的区别

    ocos2d-x中有大量的回调函数的应用,主要有以下几类,看下CCObject.h中的定义 typedef void (CCObject::*SEL_SCHEDULE)(float);// 用来调up ...

  8. 新手小白Linux(Centos6.5)部署java web项目(mongodb4.0.2安装及相关操作)

    红帽企业或CentOS的Linux上安装MongoDB的社区版: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat ...

  9. 51Nod 1072:威佐夫游戏 (威佐夫博奕)

    1072 威佐夫游戏  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 有2堆石子.A B两个人轮流拿,A先拿.每次可以从一堆中取任意个或从2堆中取相同数 ...

  10. 推荐 Laravel API 项目必须使用的 8 个扩展包

    如今在现代网络开发中,比较流行的模式是基于 API 开发,可以通过手机或网站来创建服务. Laravel 是创建基于 API 的项目的最佳框架之一,它为世界各地的大型社区提供了高速开发. Larave ...