Chinaunix首页 | 论坛 | 博客
  • 博客访问: 81502
  • 博文数量: 48
  • 博客积分: 1980
  • 博客等级: 上尉
  • 技术积分: 500
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-16 15:03
文章分类

全部博文(48)

文章存档

2009年(48)

我的朋友
最近访客

分类: LINUX

2009-09-17 13:45:29

8—数学计算命令
"操作数字"
 
8.1 factor 将一个正数分解为多个素数.
bash$ factor 27417
27417: 3 13 19 37
       
8.2 bc
Bash不能处理浮点运算, 并且缺乏特定的一些操作, 这些操作都是一些重要的计算功能. 幸运的是, bc可以解决这个问题.
bc不仅仅是个多功能灵活的精确计算工具, 且它还提供许多编程语言才具备的一些方便功能.
bc比较类似于C语言的语法.
因为它是一个完整的UNIX工具, 所以它可以用在pipe中, bc在脚本中也是很常用的.
这里有一个简单的使用bc命令的模版, 可以用来计算脚本中的变量. 这个模版经常用于命令替换中.
       variable=$(echo "OPTIONS; OPERATIONS" | bc)
       
8.4 调用bc的另一种方法就是here document, 并把它嵌入到命令替换块中. 当一个脚本需要将一个选项列表和多个命令传递到bc中时, 这种方法就显得非常合适了.
  1 variable=`bc << LIMIT_STRING
  2 options
  3 statements
  4 operations
  5 LIMIT_STRING
  6 `
  7
  8 ...or...
  9
 10
 11 variable=$(bc << LIMIT_STRING
 12 options
 13 statements
 14 operations
 15 LIMIT_STRING
 16 )
 
8.5 dc
dc(桌面计算器desk calculator)工具是面向栈的, 并且使用RPN(逆波兰表达式"Reverse Polish Notation"又叫"后缀表达式"). 与bc命令很相似, 但是这个工具具备好多只有编程语言才具备的能力.
  1 (
  2 译者注: 正常表达式      逆波兰表达式
  3         a+b             a,b,+
  4         a+(b-c)         a,b,c,-,+
  5         a+(b-c)*d       a,d,b,c,-,*,+
  6 )
  7   
绝大多数人都避免使用这个工具, 因为它需要非直观的RPN输入, 但是, 它却有特定的用途.

8.6 awk
在脚本中使用浮点运算的另一种方法是使用awk内建的数学运算函数, 可以用在shell包装中.

 
阅读(197) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~