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/

版權聲明:本文博客原創文章,博客,未經同意,不得轉載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM