linux BC命令行计算器
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命令行计算器的更多相关文章
- bc:linux下命令行计算器
在linux下,存在一个命令行的计算器:bc.该程序一般随发行版发布. bc计算器能够执行一些基本的计算,包括+,-,×,\,%. 这些计算不经针对十进制,还可以使用二进制,八进制,十六进制,并且可以 ...
- 一步步打造自己的linux命令行计算器
相信很多人,在工作中会需要使用到计算器.一般的做法是,打开并使用系统自带的计算器. 这种做法可能对我来说,有如下几个问题. 太慢.每次需要打开计算器,然后改成编程模式,手工选择进制,再使用输入表达式进 ...
- 分享一个命令行计算器-bc
分享一个命令行计算器-bc 假如你在一个图形桌面环境中需要一个计算器时,你可能只需要一路进行点击便可以找到一个计算器.例如,Fedora 工作站中就已经包含了一个名为 Calculator 的工具.它 ...
- Linux下命令行安装weblogic10.3.6
Linux下命令行安装weblogic10.3.6 一.安装前准备工作: 1.创建用户useradd weblogic;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中 ...
- Linux学习心得之 Linux下命令行Android开发环境的搭建
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...
- 28个Unix/Linux的命令行神器_转
28个Unix/Linux的命令行神器 下面是Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具,有一些是大家熟悉的,有一些是非常有用的,有一些是不为人知的.这些工具 ...
- PS1应用之——修改linux终端命令行各字体颜色
最近在学习linux操作系统(CentOS 6 & CentOS 7).觉得linux终端命令行全部为白色,会经常导致命令与输出内容难以分辨.于是上网找到修改linux终端命令行颜色的方法,发 ...
- 转: windows 10使用原生linux bash命令行
转: https://www.zybuluo.com/pandait/note/337430 windows 10使用原生linux bash命令行 linux bash windows-10 第一时 ...
- Linux 常用命令行
Linux常用命令行 第一部分: cd命令 第二部分:文件操作 第三部分:压缩包操作
随机推荐
- Android JNI入门第三篇——jni头文件分析
一. 首先写了java文件: public class HeaderFile { private native void doVoid(); native int doShort(); native ...
- http动态调用webserive
前言 传统方式调用WebService是直接引用服务,生成客户端代理类类,这种方式将ws进行了再次封装,并以代理的方式进行调用,这种方式的优点是简单,方便. 但是此种方式不足的地方是,当对方ws接口变 ...
- 根据选择项过滤GridView
前台代码: <div> <asp:CheckBoxList ID="CheckBoxList1" runat="server" AutoPos ...
- backbone HTTP方法中 options参数
wait: 可以指定是否等待服务端的返回结果再更新model.默认情况下不等待url: 可以覆盖掉backbone默认使用的url格式attrs: 可以指定保存到服务端的字段有哪些,配合options ...
- javascript mapping
1. 使用var定义的变量是声明,没有使用var是给window或者gloable对象增加属性. 比如var a = 10; //定义一个变量名称为a b= 20; // 给window对象增加一个属 ...
- 字符通向字节流的桥梁---- OutputStreamWriter
OutputStream out = System.out; OutputStreamWriter osw = new OutputStreamWriter(out); BufferedWriter ...
- [LeetCode]题解(python):063-Unique Paths II
题目来源: https://leetcode.com/problems/unique-paths-ii/ 题意分析: 这题的规则和上一题一样.给一个m×n的矩阵0,1矩阵.0代表可以经过,1代表不可以 ...
- QR码生成原理
一.什么是QR码 QR码属于矩阵式二维码中的一个种类,由DENSO(日本电装)公司开发,由JIS和ISO将其标准化.QR码的样子其实在很多场合已经能够被看到了,我这还是贴个图展示一下: 这个图如果被正 ...
- 基于visual Studio2013解决C语言竞赛题之0402奇偶求和
题目 解决代码及点评 这道题考察我们对循环和判断的综合应用 #include <stdio.h> #include <stdlib.h> #include < ...
- ZOJ3640-Help Me Escape
Help Me Escape Time Limit: 2 Seconds Memory Limit: 32768 KB Background If thou doest well, ...