linux中脚本引入计算bc,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

參考:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值