前端之家收集整理的这篇文章主要介绍了
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 $[]
原文链接:https://www.f2er.com/bash/391071.html