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)
Bash shell环境中,可以利用let、(( ))和[]执行基本的算术操作。
shell的变量之间运算格式很松散很灵活。以上计算只能计算整数。
控制精度
scale=2表示精确到小数点后2位 #进制转换.理论上支持任意进制
obase=2;表示将$no的值转换成二进制 #平方根以及平方
(责任编辑:IT) |