
- Unix/Linux 初學者教程
- Unix/Linux - 首頁
- Unix/Linux - 什麼是Linux?
- Unix/Linux - 入門指南
- Unix/Linux - 檔案管理
- Unix/Linux - 目錄
- Unix/Linux - 檔案許可權
- Unix/Linux - 環境變數
- Unix/Linux - 基本實用程式
- Unix/Linux - 管道與過濾器
- Unix/Linux - 程序
- Unix/Linux - 程序間通訊
- Unix/Linux - vi 編輯器
- Unix/Linux Shell程式設計
- Unix/Linux - Shell 指令碼
- Unix/Linux - 什麼是Shell?
- Unix/Linux - 使用變數
- Unix/Linux - 特殊變數
- Unix/Linux - 使用陣列
- Unix/Linux - 基本運算子
- Unix/Linux - 決策語句
- Unix/Linux - Shell 迴圈
- Unix/Linux - 迴圈控制
- Unix/Linux - Shell 替換
- Unix/Linux - 引號機制
- Unix/Linux - I/O 重定向
- Unix/Linux - Shell 函式
- Unix/Linux - 手冊頁幫助
- 高階 Unix/Linux
- Unix/Linux - 標準 I/O 流
- Unix/Linux - 檔案連結
- Unix/Linux - 正則表示式
- Unix/Linux - 檔案系統基礎
- Unix/Linux - 使用者管理
- Unix/Linux - 系統性能
- Unix/Linux - 系統日誌
- Unix/Linux - 訊號和陷阱
Unix/Linux - Shell 算術運算子示例
Bourne Shell 支援以下算術運算子。
假設變數a值為 10,變數b值為 20,則:
運算子 | 描述 | 示例 |
---|---|---|
+ (加法) | 將運算子兩側的值相加 | `expr $a + $b` 結果為 30 |
- (減法) | 從左運算元減去右運算元 | `expr $a - $b` 結果為 -10 |
* (乘法) | 將運算子兩側的值相乘 | `expr $a \* $b` 結果為 200 |
/ (除法) | 將左運算元除以右運算元 | `expr $b / $a` 結果為 2 |
% (取模) | 將左運算元除以右運算元並返回餘數 | `expr $b % $a` 結果為 0 |
= (賦值) | 將右運算元的值賦給左運算元 | a = $b 將 b 的值賦給 a |
== (等於) | 比較兩個數字,如果相同則返回 true。 | [ $a == $b ] 將返回 false。 |
!= (不等於) | 比較兩個數字,如果不同則返回 true。 | [ $a != $b ] 將返回 true。 |
非常重要的一點是,所有條件表示式都必須放在方括號內,並且方括號周圍要有空格,例如 [ $a == $b ] 是正確的,而 [$a==$b] 是錯誤的。
所有算術計算都使用長整數進行。
示例
這是一個使用所有算術運算子的示例:
#!/bin/sh a=10 b=20 val=`expr $a + $b` echo "a + b : $val" val=`expr $a - $b` echo "a - b : $val" val=`expr $a \* $b` echo "a * b : $val" val=`expr $b / $a` echo "b / a : $val" val=`expr $b % $a` echo "b % a : $val" if [ $a == $b ] then echo "a is equal to b" fi if [ $a != $b ] then echo "a is not equal to b" fi
以上指令碼將產生以下結果:
a + b : 30 a - b : -10 a * b : 200 b / a : 2 b % a : 0 a is not equal to b
使用算術運算子時,需要注意以下幾點:
運算子和表示式之間必須有空格。例如,2+2 是錯誤的;應寫成 2 + 2。
整個表示式應包含在‘ ’(單引號)中。
對於乘法運算子 *,應使用跳脫字元 \。
if...then...fi 語句是決策語句,將在下一章中解釋。
unix-basic-operators.htm
廣告