dcLunatic's blog

linux-bc

字数统计: 558阅读时长: 2 min
2018/08/28 Share

bc命令

简介

Bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下。手册页上说bc是An arbitrary precision calculator language,即一个任意精度的计算语言,注意是一种语言,它提供了一些语法结构,比如条件判断、循环等,可以说是很强大的,但是一般用不着 。另外一个用途就是用来进行进制转换。

格式

bc [选项] [文件]

选项

  • -h –help 输出帮助信息
  • -l –mathlib 使用数学库
  • -q –quiet 安静模式
  • -v –version 输出版本信息

用法

在bc默认的工作环境下,可以使用以下计算符号:+,-,*,/,^,%,当然还有一些常见的开方sqrt,默认的保留的小位数是0位,可以使用scale,多个计算式或者声明式可以使用分号;隔开。

进制转换时,可以使用ibase设置输入的进制,使用obase设置输出的进制。在大于十进制时要使用大写的字母A-Z,而不是小写的。

ibase 和 obase的数值进制也是ibase中设置的,默认是十进制,下面有举了个栗子。

交互式使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
root@dcLunatic:~# bc
bc 1.07.1
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
3+2
5
5*2
10
98/12
8
34 % 3
1

scale=3
5/3
1.666
ibase=10
obase=16
256
100
234
EA
ibase=16
obase=10
EADB
EADB
obase=A
EADB
60123

在bc命令后面也可以接文件

1
2
3
4
5
6
7
8
9
10
11
root@dcLunatic:~# bc calc.txt
bc 1.07.1
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
6
223
41
112
0
1.10000000

注: 使用quit或Ctrl+D或者直接Ctrl+C都可以退出bc命令。

管道使用bc

1
2
3
4
5
6
7
8
9
10
11
root@dcLunatic:~# echo "1+2" | bc
3
root@dcLunatic:~# echo "(3*7)*3.2;23*23" | bc
67.2
529
root@dcLunatic:~# echo "obase=16;34"|bc
22
root@dcLunatic:~# echo "sqrt(7)" | bc
2
root@dcLunatic:~# echo "scale=4;sqrt(8)" | bc
2.8284

也可以这样

1
2
3
4
5
6
7
8
9
10
11
12
13
14
root@dcLunatic:~# cat calc.txt
2+4
ibase=2;obase=5;9*7
3*7
4*8
5/9
scale=5;6/5
root@dcLunatic:~# cat calc.txt | bc
6
223
41
112
0
1.10000000

高级用法,bc命令的脚本片段结合bash

1
2
3
4
5
6
7
8
9
10
11
root@dcLunatic:~# calc_sum()
> {
> bc -q << EOF
> 0.05*$1
> EOF
> }
root@dcLunatic:~#
root@dcLunatic:~# calc_sum 3
.15
root@dcLunatic:~# calc_sum 89
4.45

原文作者:dcLunatic

原文链接:http://dclunatic.github.io/linux-bc.html

发表日期:August 28th 2018, 9:31:42 pm

更新日期:July 11th 2021, 9:13:50 pm

版权声明:转载的时候,记得注明来处

CATALOG
  1. 1. bc命令
    1. 1.1. 简介
    2. 1.2. 格式
    3. 1.3. 选项
    4. 1.4. 用法
      1. 1.4.1. 交互式使用
      2. 1.4.2. 管道使用bc
      3. 1.4.3. 高级用法,bc命令的脚本片段结合bash