Linux bc 命令

Linux 命令大全

bc 命令是任意精度计算器语言,通常在linux下当计算器用。

它类似基本的计算器, 使用这个计算器可以做基本的数学运算。

letexpr不能处理浮点运算,而bc命令恰好弥补了这一点,bc提供精确的复杂计算功能,它是linux一个重要的工具,bc往往使用在管道里。

常用的运算:

  • + 加法

  • - 减法

  • * 乘法

  • / 除法

  • ^ 指数

  • % 余数

语法

bc(选项)(参数)

选项值

  • -i:强制进入交互式模式;

  • -l:定义使用的标准数学库

  • ; -w:对POSIX bc的扩展给出警告信息;

  • -q:不打印正常的GNU bc环境信息;

  • -v:显示指令版本信息;

  • -h:显示指令的帮助信息。

参数

文件:指定包含计算任务的文件。

bc实例

[root@xinbiancheng.cn]$ 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'. 
3+3
6
8-2
6
2+3*3
11

输入 quit 退出。

echo通过管道符再通过bc进行计算

[root@xinbiancheng.cn]$ echo "8+8" | bc
16

scale=2 设小数位,2 代表保留两位:

[root@xinbiancheng.cn]$ echo 'scale=2; (2.777 - 1.4744)/1' | bc
1.30

bc 除了 scale 来设定小数位之外,还有 ibase 和 obase 来其它进制的运算:

[root@xinbiancheng.cn]$ echo "ibase=2;101" |bc
5

bc进制转换

[root@xinbiancheng.cn]$ abc=192 
[root@xinbiancheng.cn]$ echo "obase=2;$abc" | bc #十进制转二进制
11000000
[root@xinbiancheng.cn]$ abc=11000000 
[root@xinbiancheng.cn]$ echo "obase=10;ibase=2;$abc" | bc #二进制转十进制
192

bc计算平方和平方根:

[root@xinbiancheng.cn]$ echo "10^10" | bc
10000000000
[root@xinbiancheng.cn]$ echo "sqrt(100)" | bc
10

通过cat查看bc_v1.sh内容,接着执行shell,通过脚本中的 bc 进行运算,代码如下:

[root@xinbiancheng.cn]$  cat bc_v1.sh  
#!/bin/bash
 
#example of bc
 
n=`echo "scale=4;10/3"|bc`
 
echo $n

[root@xinbiancheng.cn]$ sh bc_v1.sh
3.3333

通过cat查看bc_v2.sh内容,接着执行shell,通过脚本中的 bc 进行运算,代码如下:

[root@xinbiancheng.cn]$ cat bc_v2.sh 
#!/bin/bash 
#another exmple of bc 
i=100 
j=3 
k=7 
res1=`echo "scale=3;$i/$j/$k"|bc` 
echo "i/j/k=$res1"
 
[root@xinbiancheng.cn]$ sh bc_v2.sh  
i/j/k=4.761

Linux 命令大全