
- 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,則 -
運算子 | 描述 | 示例 |
---|---|---|
-eq | 檢查兩個運算元的值是否相等;如果相等,則條件為真。 | [ $a -eq $b ] 為假。 |
-ne | 檢查兩個運算元的值是否相等;如果值不相等,則條件為真。 | [ $a -ne $b ] 為真。 |
-gt | 檢查左運算元的值是否大於右運算元的值;如果大於,則條件為真。 | [ $a -gt $b ] 為假。 |
-lt | 檢查左運算元的值是否小於右運算元的值;如果小於,則條件為真。 | [ $a -lt $b ] 為真。 |
-ge | 檢查左運算元的值是否大於或等於右運算元的值;如果大於或等於,則條件為真。 | [ $a -ge $b ] 為假。 |
-le | 檢查左運算元的值是否小於或等於右運算元的值;如果小於或等於,則條件為真。 | [ $a -le $b ] 為真。 |
務必理解所有條件表示式都應放在方括號內,並且方括號周圍要有空格。例如,[ $a <= $b ] 是正確的,而 [$a <= $b] 是錯誤的。
示例
以下是一個使用所有關係運算符的示例 -
#!/bin/sh a=10 b=20 if [ $a -eq $b ] then echo "$a -eq $b : a is equal to b" else echo "$a -eq $b: a is not equal to b" fi if [ $a -ne $b ] then echo "$a -ne $b: a is not equal to b" else echo "$a -ne $b : a is equal to b" fi if [ $a -gt $b ] then echo "$a -gt $b: a is greater than b" else echo "$a -gt $b: a is not greater than b" fi if [ $a -lt $b ] then echo "$a -lt $b: a is less than b" else echo "$a -lt $b: a is not less than b" fi if [ $a -ge $b ] then echo "$a -ge $b: a is greater or equal to b" else echo "$a -ge $b: a is not greater or equal to b" fi if [ $a -le $b ] then echo "$a -le $b: a is less or equal to b" else echo "$a -le $b: a is not less or equal to b" fi
以上指令碼將生成以下結果 -
10 -eq 20: a is not equal to b 10 -ne 20: a is not equal to b 10 -gt 20: a is not greater than b 10 -lt 20: a is less than b 10 -ge 20: a is not greater or equal to b 10 -le 20: a is less or equal to b
在使用關係運算符時,需要考慮以下幾點 -
運算子和表示式之間必須有空格。例如,2+2 是不正確的;應寫成 2 + 2。
if...then...else...fi 語句是決策語句,將在下一章中進行解釋。
unix-basic-operators.htm
廣告