通过shell进行数学计算
对于基本运算,可以使用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进行数学计算的更多相关文章
- Shell之数学计算
本博客已经迁往http://www.kemaswill.com/, 博客园这边也会继续更新, 欢迎关注~ 数学计算是Shell中比较常用的一种操作, 但是因为shell中所有的变量都默认为字符串, ...
- shell 中数学计算总结
shell中的赋值和操作默认都是字符串处理,在此记下shell中进行数学运算的几个特殊方法,以后用到的时候可以来看,呵呵. 1.错误方法举例 a) var=1+1 echo $var ...
- Shell中数学计算/运算
shell中的赋值和操作默认都是字符串处理. 1)使用let(只能进行整数运算)var=1let "var+=1"echo $var输出结果为2 注意:a)let几乎支持所有的运算 ...
- Shell脚本之六 数学计算
前面一节Shell篇之五 基本运算符介绍了常见的 Shell 算术运算符,这节介绍 Shell 的数学计算.Shell 和其它编程语言不同,Shell 不能直接进行算数运算,必须使用数学计算命令. 下 ...
- Shell脚本笔记(三)shell中的数学计算
shell中的数学计算 一.使用方括号 #!/bin/bash a= b= c= res=$[$a * ($c-$b)] echo $res 二.使用(()) +)) ((i=+)) b=$((-*) ...
- shell执行数学运算
整数: expr let $(()) $[] 浮点数: bc 1.使用expr ♦参与运算的成员和运算符之间必须有一个空格: ♦对于那些容易被shell错解的,在它们传入expr命令之前,需要使用sh ...
- 理工科应该的知道的C/C++数学计算库(转)
理工科应该的知道的C/C++数学计算库(转) 作为理工科学生,想必有限元分析.数值计算.三维建模.信号处理.性能分析.仿真分析...这些或多或少与我们常用的软件息息相关,假如有一天你只需要这些大型软件 ...
- shell变量数学运算
shell变量数学运算 #!/bin/sh # 本脚本说明shell脚本中变量运算的用法 # 错误的用法var=1var=$var+1echo $var 输出:1+1 # 第一种用法,letvar=1 ...
- C语言中几个常用数学计算函数ceil(), floor(), round()的用法
最近在实现算法的过程中,遇到了使用几个数学计算函数,感觉挺有意思,就记下来 方便以后使用. ceil(x)返回不小于x的最小整数值(然后转换为double型). floor(x)返回不大于x的最大整数 ...
随机推荐
- 使用Messenger 从Activity发送数据到service 通过后台计算结果Log输出;
package com.lixu.messenger; import android.app.Activity; import android.app.Service; import android. ...
- DevExpress v17.2新版亮点——CodeRush篇(二)
用户界面套包DevExpress v17.2日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了CodeRush v17.2 的新功能,快来下载试用新版本! 支持XAML 标记扩 ...
- 粗略学习《Agile Guide》后的总结
碍于个人能力极度欠佳,所以即使我大致了解了一下何谓“Agile Guide”(敏捷开发),也不很能理解其中的软件工程思想,只能大概谈一下我的理解. 我所理解的“敏捷开发”,应该是一种特殊的.相较于传统 ...
- 20165210 Java第六周学习总结
20165210 Java第六周学习总结 教材学习内容 第八章学习总结 String类: 构造String对象: 1. 常量对象 2. String对象 3. 引用String常量 字符串的并置: S ...
- java poi 写入大量数据到excel中
最近在利用poi往excel中写入大量数据时,发现excel2003最多只支持65535条,大量数据时容易造成oom,上网查了一下api,发现目前对于2003,每个sheet最多支持65535条,若数 ...
- Motorola C118 PCB原理高清图
- prop和state的区别
1.prop用于定义外部接口,state用于记录内部状态: 2.prop的赋值在外部世界使用组件时,state的赋值在组件内部: 3.组件不应该改变prop的值,但是state的存在目的就是让组件来改 ...
- NBUT 1220 SPY 2010辽宁省赛
Time limit 1000 ms Memory limit 131072 kB The National Intelligence Council of X Nation receives a ...
- C# 高性能的数组 高性能数组队列实战 HslCommunication的SharpList类详解
本文将使用一个gitHub开源的组件技术来实现这个功能 github地址:https://github.com/dathlin/HslCommunication ...
- IOS 获取中英文字符串长度
//得到中英文混合字符串长度 方法1 - (int)convertToInt:(NSString*)strtemp { int strlength = 0; char* p = (char*)[str ...