整數比較運算符僅是對數字的操做,不能將數字與字符串、文件等內容一塊兒操做,並且不能想固然地使用平常生活中的等號、大於號、小於號等來判斷。由於等號與賦值命令符衝突,大於號和小於號分別與輸出重定向命令符和輸入重定向命令符衝突。所以必定要使用規範的整數比較運算符來進行操做。可用的整數比較運算符如表4-4所示。linux
表4-4 可用的整數比較運算符測試
操做符 | 做用 |
-eq | 是否等於 |
-ne | 是否不等於 |
-gt | 是否大於 |
-lt | 是否小於 |
-le | 是否等於或小於 |
-ge | 是否大於或等於 |
接下來小試牛刀。咱們先測試一下10是否大於10以及10是否等於10(經過輸出的返回值內容來判斷):spa
[root@linuxprobe ~]# [ 10 -gt 10 ] [root@linuxprobe ~]# echo $? 1 [root@linuxprobe ~]# [ 10 -eq 10 ] [root@linuxprobe ~]# echo $? 0
字符串比較語句用於判斷測試字符串是否爲空值,或兩個字符串是否相同。它常常用來判斷某個變量是否未被定義(即內容爲空值),理解起來也比較簡單。字符串比較中常見的運算符如表4-5所示。code
表4-5 常見的字符串比較運算符字符串
操做符 | 做用 |
= | 比較字符串內容是否相同 |
!= | 比較字符串內容是否不一樣 |
-z | 判斷字符串內容是否爲空 |
接下來經過判斷String變量是否爲空值,進而判斷是否認義了這個變量:table
[root@linuxprobe ~]# [ -z $String ] [root@linuxprobe ~]# echo $? 0