Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux Shell 四則運算完全指南:整數與浮點數實現方法

編輯:Linux 教學

整數運算:三種主流方法

方法 1:雙括號 $((...)) —— 最推薦

Bash 內建語法,支援 C 風格表達式,效率最高:

b=$((5*5+5-3/2))
echo $b  # 輸出 29

優點:無需外部進程、支援變量直接引用($a+$b)、支援位運算、邏輯運算。

方法 2:expr 命令 —— 經典外部命令

expr 5 - 4  # 輸出 1
expr 5 \* 4 # 乘法需轉義

注意:操作數與運算符之間必須有空格,否則報錯。僅支援整數。

方法 3:let / declare -i —— 變量屬性聲明

let "a = 5 + 3"
declare -i b=10*2

expr 完整運算符參考表

類別語法說明
邏輯expr1 \| expr2expr1 非零/非空返回 expr1,否則 expr2
expr1 & expr2兩者皆非零/非空返回 expr1,否則 0
算術expr1 + expr2加法
expr1 - expr2減法
expr1 \* expr2乘法(需轉義)
expr1 / expr2整除
expr1 % expr2取模
比較expr1 > expr2大於返回 1,否則 0(數字比大小,字符串比字典序)
expr1 < expr2小於
expr1 = expr2等於
expr1 != expr2不等於
expr1 >= expr2大於等於
expr1 <= expr2小於等於
字符串expr1 : expr2正則匹配,返回匹配長度;帶 \(\) 返回捕獲組

浮點數運算:Bash 原生不支援,需借助外部工具

直接使用 $((5.0-4)) 或 expr 5.0 - 4 均會報錯。

方案 1:bc —— 精確計算器

c=$(echo "5.01-4*2.0" | bc)
echo $c  # -2.99

# 支援 scale 控制精度
echo "scale=2; 10/3" | bc  # 3.33

方案 2:awk —— 文本處理順便算數

c=$(awk 'BEGIN{print 7.01*5-4.01}')
echo $c  # 31.04

方案 3:perl / python —— 腳本語言一行命令

perl -e 'print 3.14*2'
python -c 'print(3.14*2)'

最佳實踐建議

  • 純整數運算:優先用 $((...)),性能最好、語法最清晰
  • 浮點運算:推薦 bc(精度可控)或 awk(管道流處理中便利)
  • 避免 在循環中大量調用外部命令(expr/bc/awk),改用 Bash 內建或 awk 整體處理
  • 注意:$() 與反引號 `` 效果相同,推薦前者(可嵌套、可讀性強)
Copyright © Windows教程網 All Rights Reserved