算术运算

使用expr - 整数运算

expr可以用来进行算术求值,他将会输出求值的结果。可以使用反单引号``或者等价的$()将其输出的结果赋值给其他变量。

注意变量要使用$

out=`expr 5 + 7`
echo $out

out=$(expr $out + 5)
echo $out

expr可以进行的运算有:+, -, *, /, %, >, <, >=, <=, =, |, & ,其中* < >符号要使用转移字符才能够让bash识别。不能进行幂运算。

expr还可以对字符串进行处理,包括match、substr、index、length

使用$[ * ],在其中进行算术运算,可以省略书写`expr *`,同时使用变量不用加$。另外,可以使用**表示幂运算。

i=2
out=$[i +7]
echo $out

使用C语言风格 - 整数运算

这里,双括号中的变量不需要使用$。

在双括号中时直接可以进行C风格的代码执行的,这里的$表明,会将C代码的执行结果作为一个右操作数。

可以使用**表示幂运算

val=10
out=$((val+1))
echo $out

也可以不赋值,直接使用

val=10
((out=val+1+5))
echo $out

使用let运算 - 整数运算

let运算

i=1
b=2
let n=b**10-i
echo $n

以上算术运算只能对整数进行计算,下边介绍浮点数的运算

bc - 浮点运算

bc是一个广泛使用的数值计算环境,这里只介绍简单的使用,更多请参见 man bc

在安装有bc的机器上:
1. 在shell中输入bc即可进行计算。
2. 编写好bc计算文件,可以直接bc file_name进行计算
3. 使用管道|,将上一个命令的输出作为输入,进行计算。

使用bc进行计算需要注意:
1. 使用时要设置scale,否则小数默认为0位
2. 可以设置输入输出的进制,ibase obase
3. 支持数学运算需要加上特定参数。“bc -l”。可以使用s、c、a、l、j、e,分表表示函数sin/cos/atan/ln/bessel function/exponential function

#!/bin/bash
echo "scale=7; 355/113" | bc 
echo "ibase=16; FFFF" | bc
echo "obase=16; 65535" | bc
echo "scale=50;a(1)*4" | bc -l

 使用$()或者反逗点``,将计算结果取出来:

 

#!/bin/bash
c=$(echo "scale=7; 355/113" | bc )
echo $c

c=`echo "scale=7; 355/113" | bc `
echo $c

 

 

 

posted on 2016-06-13 23:41  峰入云  阅读(371)  评论(0编辑  收藏  举报

导航