Linux shell 里面的数学计算

Linux shell 里面的数学计算,AWK是个好的工具。AWK用在数据库型的数据最是适合。不过用来做一些计算,也是非常好的。而且比较清楚。


例如,可以将shell里面的变量 以 -v的方式代入。比如 -v vv=${value} 就是把shell里面的变量value,代入到AWK的变量vv,然后在AWK的主题计算中,就可以直接使用vv变量,无需$,${}"",''等方式来取得变量的值。直接写变量名vv,很爽!

另外,AWK自带很多数学函数,例如log,就是以10为第的对数函数,而不是以e为底自然对数,感觉很是方便!


实例如下:


用于把温度传感器的直接采集数值,转化为摄氏度,是一个带log的算式。先把直接采集值(530)赋给shell变量value,然后计算,最后把计算结果赋给另外一个shell变量ss.

代码如下:

[davidqi@david ~]$ value=530

[davidqi@david ~]$ ss=`awk -v vv=${value} 'BEGIN {print 1/(log((1023-vv)*10000/vv/10000)/3975+1/298.15)-273.15}'`
[davidqi@david ~]$ echo ${ss}
26.6272


其中ss=`。。。`就是把AWK计算结果赋值给变量ss的方式,也很简单。BEGIN{。。。}就是AWK正式重复计算前的预先计算,对我们这个已经足够。就没有主体计算和END的过程了。

==========================================================

Linux shell 里面的数学计算,bc是个好的工具,它比较AWK更为简单,而且可以交互式操作,就像一个计算器一样(也可以写成代码执行)。但是其函数比较有限,比如,对数函数就是自然对数。-l 选项就是说明需要用到函数。l(x)就是自然对数的形式。


实例如下:


[davidqi@david ~]$ bc -l
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
l(2.7)
.99325177301028339016



你可能感兴趣的:(Linux shell 里面的数学计算)