Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux 終端機計算器 bc 完整使用指南:從基礎運算到腳本整合

編輯:Linux 系統常見問題解答

什麼是 bc?

bc (Basic Calculator) 是 Linux/Unix 系統內建的任意精度計算器語言。支援整數、浮點數、進位制轉換、數學函數、邏輯運算與程式化控制流,是終端機、腳本與管道運算的首選工具。

啟動與退出

$ bc          # 進入互動模式
$ bc -l       # 載入標準數學庫(sin, cos, sqrt 等)
$ bc -q       # 安靜模式(不顯示版權資訊)

# 退出
quit
# 或 Ctrl+D

基礎運算

運算子功能範例結果
+加法2+57
-減法7-25
*乘法3*412
/除法(整數除法)3/40
^冪次2^38
%取模(餘數)6%51

精度控制:scale 變數

bc 預設整數運算,scale 定義小數點後位數(預設 0)。

scale=3
3/4
.750

scale=10
sqrt(2)
1.4142135623

# 臨時指定精度
echo "scale=5; 22/7" | bc
3.14285

進位制轉換:ibase / obase

數學函數(需 bc -l)

函數功能範例
s(x)正弦(弧度)s(3.14159/2) → 1
c(x)餘弦(弧度)c(0) → 1
a(x)反正切(弧度)a(1)*4 → π 約 3.14159
l(x)自然對數l(2.71828) → 1
e(x)指數函數 e^xe(1) → 2.71828
j(n,x)貝塞爾函數進階數學運算

變數與程式化控制

 y) print "x greater\n"

# 迴圈
for (i=1; i<=5; i++) i^2
1
4
9
16
25

# 定義函數
define factorial(n) {
    if (n <= 1) return 1
    return n * factorial(n-1)
}
factorial(5)
120

邏輯與比較運算

 4
0
3 > 2
1

# 邏輯運算
(3 > 2) && (1 < 2)
1
(3 > 2) || (1 > 2)
1
!(3 > 2)
0

管道模式:腳本整合首選

單行運算

多行運算(分號分隔)

Here Document 多行輸入

實戰應用範例

1. 磁盤使用率計算

2. 浮點數比較(bash 原生不支援)

 $VER2" | bc -l) )); then
    echo "版本 $VER1 較新"
fi

3. 科學計算腳本

常見問題與技巧

問題解決
除法結果為 0未設定 scale,預設整數除法
語法錯誤:illegal character輸入含中文標點或全形字符,請用半形
變數不保留互動模式下變數僅在當前 session 有效
需要高精度 πa(1)*4 利用反正切計算 π
腳本中 bc 卡住未提供輸入結束,使用 echo ... | bc 或 Here Doc

替代工具對比

工具優點缺點適用場景
bc任意精度、標準內建、支援函數/流程控制語法較舊、無矩陣運算系統管理腳本、管道運算、精度要求高
awk文本處理順便運算、內建數學函數精度有限(雙精度浮點)日誌分析、CSV 計算
python -c語法現代、豐富庫、任意精度啟動較慢、非極簡系統必裝複雜科學計算、JSON 處理
dc逆波蘭表示法、極簡難讀、難寫嵌入式極簡環境

總結

bc 是 Linux 終端機計算的瑞士刀。掌握 scale 精度控制、ibase/obase 進位轉換、-l 數學庫與管道模式,即可覆蓋 95% 的運維計算需求。腳本整合時優先使用 echo "expr" | bc 模式,複雜邏輯改用 Here Document 或 Python。記住:浮點數比較、精度計算、進位轉換——bc 一把搞定。

Copyright © Windows教程網 All Rights Reserved