shell学习十一--bc

bc(独有特点既包含整数,也包含小数)
bc是一种任意精度的计算语言,注意是一种语言,它提供了一些语法结构,
比如条件判断、循环等,可以说是很强大的,但是我在实际中还没有找到
需要这个用途的场合 。另外一个用途就是用来进行进制转换。

参数
-i 强制交互模式;
-l 使用bc的内置库,bc里有一些数学库,对三角计算等非常实用;
-q 进入bc交互模式时不再输出版本等多余的信息。

特殊变量
ibase,obase 用于进制转换,ibase是输入的进制,obase是输出的进制,默认是十进制;
scale 小数保留位数,默认保留0位。

例子1:
[root@node01 day4]# bc
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'.
2+3
5
3*3
9
5/2
2
5%2
1
5**5

例子2:
[root@node01 day4]# echo 1+2|bc
3
[root@node01 day4]# echo 1+3|bc
4
[root@node01 day4]# echo 1+5|bc
6
[root@node01 day4]# echo 1+5.1|bc   (小数计算是bc特有的)
6.1
[root@node01 day4]# echo 1.1+5.1|bc
6.2
[root@node01 day4]# expr 1.1 + 2
expr: non-numeric argument
[root@node01 day4]# echo $((1.1+2))
-bash: 1.1+2: syntax error: invalid arithmetic operator (error token is ".1+2")
[root@node01 day4]# let 1+2
[root@node01 day4]# let 1.1+2
-bash: let: 1.1+2: syntax error: invalid arithmetic operator (error token is ".1+2")
[root@node01 day4]# echo 1.1-5.1|bc
-4.0

scale(保留小数位数)
[root@node01 day4]# echo "scale=1;1.1*2.2|bc"
scale=1;1.1*2.2|bc
[root@node01 day4]# echo "scale=1;1.1*2.2"|bc
2.4
[root@node01 day4]# echo "1.1*2.2"|bc        
2.4
[root@node01 day4]# echo "1.1*2.2"|bc -l
2.42
[root@node01 day4]# echo "scale=1;1.3/2.2"|bc
.5
[root@node01 day4]# echo "scale=3;1.3/2.2"|bc
.590

进制转换
[root@node01 day4]# echo "obase=2;8"|bc   十进制8转换为2进制
1000
[root@node01 day4]# echo "obase=16;20"|bc 十进制8转换为16进制
14


例子3:
输出表达式和结果
[root@node01 day4]# echo ` seq -s '+' 10 `=` seq -s "+" 10|bc`
1+2+3+4+5+6+7+8+9+10=55
[root@node01 day4]# echo ` seq -s '+' 10 `=$((`seq -s "+" 10`))
1+2+3+4+5+6+7+8+9+10=55
[root@node01 day4]# echo ` seq -s '+' 10 `=`seq -s " + " 10|xargs expr`
1+2+3+4+5+6+7+8+9+10=55


其他运算方法
typeset
$[]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值