当前位置: > shell编程 >

shell中进行数学运算

时间:2015-01-18 01:37来源:linux.it.net.cn 作者:IT

Bash shell环境中,可以利用let、(( ))和[]执行基本的算术操作。
而在进行高级操作时, expr和bc这两个工具也会非常有用。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#/bin/bash
#数学运算
n1=4;
n2=5;
let result=n1+n2;
echo $result;
 
result2=$[ $n1 + $n2 ];
result3=$[ n1 + n2 ];
result4=$(( $n1 + n2  ));
result5=`expr $n1 + 1`;
result6=$(expr $n1 + $n2);
echo $result2;
echo $result3;
echo $result4;
echo $result5;
echo $result6;

shell的变量之间运算格式很松散很灵活。以上计算只能计算整数。
下面看下高级的数学计算工具bc.

 

1
2
3
4
bogon:shell zhuzhenyu$ no=20;
bogon:shell zhuzhenyu$ result=`echo "$no * 1.5" | bc`
bogon:shell zhuzhenyu$ echo $result;
30.0

控制精度

 
1
2
bogon:shell zhuzhenyu$ echo "scale=2;3/8" | bc
.37

scale=2表示精确到小数点后2位

#进制转换.理论上支持任意进制

 

1
2
3
4
5
6
7
bogon:shell zhuzhenyu$ no=100
bogon:shell zhuzhenyu$ echo "obase=2;$no" | bc
1100100
bogon:shell zhuzhenyu$ echo "obase=8;$no" | bc
144
bogon:shell zhuzhenyu$ echo "obase=7;$no" | bc
202

obase=2;表示将$no的值转换成二进制

#平方根以及平方

 

1
2
3
bogon:shell zhuzhenyu$ no=100
bogon:shell zhuzhenyu$ echo "sqrt($no)" | bc
10

 

 
1
2
3
4
bogon:shell zhuzhenyu$ echo "2^1" | bc
2
bogon:shell zhuzhenyu$ echo "2^3" | bc
8


(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容