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 7last 也能夠用 點號取代:
$ 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/
版權聲明:本文博客原創文章,博客,未經同意,不得轉載。