shell具有基本的数学计算能力:
z=`expr $z + 3`
let z=z+3
z=$((z+1))
(这些也适用于乘法,除法截断取整)
但这些数学计算只能针对整型数据。
如果要计算小数,就需要通过bc命令扩展。
echo 1.0+1.0|bc
2.0
-----------
[*]bc扩展shell的数学计算能力。
- cnkilior
- 论坛版主
- 帖子: 4984
- 注册时间: 2007-08-05 17:40
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- yjcong
- 帖子: 2470
- 注册时间: 2006-02-28 3:11
Re: [*]bc扩展shell的数学计算能力。
cat /usr/bin/yy
#!/bin/bash
result=`echo "$1" | tr "[:upper:]" "[:lower:]" |sed 's/\[/\(/g'|sed 's/\]/\)/g'| xargs -i awk 'BEGIN{print {}}'`
echo $result
用法:
yy 3^[sin[6.2/9.8]]-8.8
-6.88524
#!/bin/bash
result=`echo "$1" | tr "[:upper:]" "[:lower:]" |sed 's/\[/\(/g'|sed 's/\]/\)/g'| xargs -i awk 'BEGIN{print {}}'`
echo $result
用法:
yy 3^[sin[6.2/9.8]]-8.8
-6.88524
一梦三年,
松风依旧,
萝月何曾老.
灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
松风依旧,
萝月何曾老.
灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
- HuntXu
- 帖子: 5776
- 注册时间: 2007-09-29 3:09
Re: [*]bc扩展shell的数学计算能力。
相当强悍yjcong 写了:cat /usr/bin/yy
#!/bin/bash
result=`echo "$1" | tr "[:upper:]" "[:lower:]" |sed 's/\[/\(/g'|sed 's/\]/\)/g'| xargs -i awk 'BEGIN{print {}}'`
echo $result
用法:
yy 3^[sin[6.2/9.8]]-8.8
-6.88524

HUNT Unfortunately No Talent...