有时候我们需要做一些简单的计算,
如:1.1^10 应该是多少,计算一些百分率等等小事情,如果在windows下我们就知道回去用计算器了,Linux/Unix下怎么办呢。
会写C当然很快就可以解决了。但有点大才小用了,以前我一直使用gdb下的print来做,但有时候还是不大好,如: 1.1^10这样的计算目前还不知道怎么解决,简单了了解了一下,原来shell中的***的awk就可以帮我们了。
看一些简单的事例:
[oracle@asm tmp]$ gdb
GNU gdb Red Hat Linux (6.3.0.0-1.63rh)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu".
(gdb) p 1.4*123.324*3
$1 = 517.96079999999995
(gdb) p /x 1.4*123.324*3
$2 = 0x205
(gdb) p /x 4*24
$3 = 0x60
(gdb)
[oracle@asm tmp]$ echo | awk '{print 1.1*2*23.34;}'
51.348
[oracle@asm tmp]$ awk 'BEGIN {print (1.25^10);}'
9.31323
awk 支持不少常见的运算符, 如:
+ (加),- (减), * (乘), / (除), ^ 或 **(乘方), % 取模) 等等。
此外, awk 也提供了一些常用的数学函数, 比如 sin(x), cos(x), exp(x), log(x), sqrt(x), rand()。 使用这些运算符和函数可以直接进行一些简单的运算:
[oracle@asm tmp]$ echo | awk '{print sin(2);}'
0.909297
如果比会使用的话这个其实比使用windows下的计算器,C写的小程序要的来的快多了。
【编辑推荐】