1. 基本使用:

$ bc <<< 5*4
20
$ bc <<< 5+4
9
$ bc <<< 5-4
1

或者

$ echo "5*4" | bc
20
$ echo "5+4" | bc
9
$ echo "5-4" | bc
1

也能够把算式写到文件中面。然后一次计算。

$ cat calcFile
5+5
6+7 $ bc < calcFile
10
13

也能够使用HERE 命令:

$ bc << HERE
> 1+4
> 4-1
> 2*4
> HERE
5
3
8

能够使用内置的变量 last 引用上一次的结果:

$ echo "5-4;last+6" | bc
1
7

last 也能够用 点号取代:

$ echo "5-4;.+6" | bc
1
7

2. 浮点数运算:

能够使用scale指定小数点之后的位数(默觉得0,即整数)

$ echo "sqrt(10)" | bc
3
$ echo "scale=1;sqrt(10)" | bc
3.1
$ echo "scale=10;sqrt(10)" | bc
3.1622776601

有时候得不到指定的位数:

$ echo "scale=10; 1.25*9" | bc
11.25

此时,能够改动为:

$ echo "scale=10; 1.25*9/1" | bc
11.2500000000

3. 数制转换:

能够使用变量 ibase表示转换前数字的数制;obase表示转换后数字的数制

$ echo 'obase=16;128' | bc
80
$ echo 'ibase=16;obase=A;80' | bc
128
$ echo 'obase=2;128' | bc
10000000
$ echo 'ibase=2;obase=A;10000000' | bc
128

$ echo "obase=10;ibase=16;80" | bc
128

4. 指数运算:

$ echo "5^5" | bc
3125
$ echo "(5^5)^5" | bc
298023223876953125

记得第一个指数运算的结果要加入括号。

5. 基于函数库的运算

bc支持下面函数:

s(x): 正弦函数(x为弧度)

c(x): 余弦函数(x为弧度)

a(x): 反正切函数(结果为弧度)

l(x):  自然对数函数

e(x): 以e为底的指数函数

j(n,x):  贝赛尔函数

此时。bc要加上 -l 參数 (此时。  scale 为20)

计算 log1.5(2) (以 1.5为底,2的对数):

$ echo "l(2)/l(1.5)" | bc -l
1.70951129135145477699

也能够用 awk命令:

$ awk 'BEGIN {printf "%1l.9f\n", log(2)/log(1.5)}'
1.709511291

6. 脚本函数编程:

$ cat calc_prog
print "Enter a number A\n"; a = read() print "Enter another number B\n"; b = read() if (b == a) { print "B = A\n"; } if (a < b) { print "B > A\n"; } if (a > b) { print "B < A\n"; }
$ bc -l calc_prog

7. 脚本模拟计算器:

$ cat calc.sh
#!/bin/bash bc << END
scale=2
$@
END
$ ./test.sh  1+2
3

參考:

http://mylinuxbook.com/linux-command-line-calculator-bc-examples/

版权声明:本文博客原创文章,博客,未经同意,不得转载。

linux BC命令行计算器的更多相关文章

  1. bc:linux下命令行计算器

    在linux下,存在一个命令行的计算器:bc.该程序一般随发行版发布. bc计算器能够执行一些基本的计算,包括+,-,×,\,%. 这些计算不经针对十进制,还可以使用二进制,八进制,十六进制,并且可以 ...

  2. 一步步打造自己的linux命令行计算器

    相信很多人,在工作中会需要使用到计算器.一般的做法是,打开并使用系统自带的计算器. 这种做法可能对我来说,有如下几个问题. 太慢.每次需要打开计算器,然后改成编程模式,手工选择进制,再使用输入表达式进 ...

  3. 分享一个命令行计算器-bc

    分享一个命令行计算器-bc 假如你在一个图形桌面环境中需要一个计算器时,你可能只需要一路进行点击便可以找到一个计算器.例如,Fedora 工作站中就已经包含了一个名为 Calculator 的工具.它 ...

  4. Linux下命令行安装weblogic10.3.6

    Linux下命令行安装weblogic10.3.6 一.安装前准备工作: 1.创建用户useradd weblogic;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中 ...

  5. Linux学习心得之 Linux下命令行Android开发环境的搭建

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...

  6. 28个Unix/Linux的命令行神器_转

    28个Unix/Linux的命令行神器 下面是Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具,有一些是大家熟悉的,有一些是非常有用的,有一些是不为人知的.这些工具 ...

  7. PS1应用之——修改linux终端命令行各字体颜色

    最近在学习linux操作系统(CentOS 6 & CentOS 7).觉得linux终端命令行全部为白色,会经常导致命令与输出内容难以分辨.于是上网找到修改linux终端命令行颜色的方法,发 ...

  8. 转: windows 10使用原生linux bash命令行

    转: https://www.zybuluo.com/pandait/note/337430 windows 10使用原生linux bash命令行 linux bash windows-10 第一时 ...

  9. Linux 常用命令行

    Linux常用命令行 第一部分: cd命令 第二部分:文件操作 第三部分:压缩包操作

随机推荐

  1. 使用Win32 API创建不规则形状&带透明色的窗口

    前一阵突然想起了9月份电面某公司实习时的二面题,大概就是说怎么用Win32 API实现一个透明的窗口,估计当时我的脑残答案肯定让面试官哭笑不得吧.所以本人决定好好研究下这个问题.经过一下午的摸索,基本 ...

  2. Linux 内核的编译系统

    Linux  的编译使用 GNU make 工具来检查整个系统的文件和调用 gcc 工具以及脚本完毕编译源码生成 image 等操作.要了解整个编译系统,我们首先要了解 Linux 内核的 Makef ...

  3. ofbiz学习笔记

    最新稳定版apache-ofbiz-13.07.02 最新源码ofbiz-release14.12 ant load-demo 载入演示样例数据 ant load-seed 仅仅载入种子数据 ant ...

  4. android编译系统的makefile文件Android.mk写法如下

    (1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件.由于一般情况下Android.mk和需要编译的源文件在同一目录下,所以定义成如下形式:LOCAL_PATH:=$(c ...

  5. 自定义cell相关注意事项

    1.拖线成功后,如果又在.h文件或者.m文件里面删除了对应的属性或者方法.一定要在xib文件中,删除关联.方法是:右键点击一下对应的UI控件,把多余的关联叉掉就行了.  不然容易崩溃.

  6. 「C」 数组、字符串、指针

    一.数组 (一)数组 概念:用来存储一组数据的构造数据类型 特点:只能存放一种类型的数据,如全部是int型或者全部是char型,数组里的数据成为元素. (二)数组的定义 格式: 类型 数组名[元素个数 ...

  7. Mini-project # 4 - "Pong"___An Introduction to Interactive Programming in Python"RICE"

    Mini-project #4 - "Pong" In this project, we will build a version of Pong, one of the firs ...

  8. NOIP2015前

    时间过得好快...明天就要出发去NOIP了...然后再过半年就要省选了....希望自己能取得好成绩吧... NOIP2015 bless all !

  9. HTML5 总结-应用程序缓存-8

    HTML 5 应用程序缓存 使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本. 什么是应用程序缓存(Application Cache)? HTM ...

  10. java 利用java运行时的方法得到当前屏幕截图的方法(转)

    将截屏图片保存到本地路径: package com.test; import java.awt.AWTException; import java.awt.Dimension; import java ...