BASH初學者指南 - 比較東西

08年1月

BASH初學者指南 - 比較東西

BASH教程 - 比較字符串。

在BASH教程的前一部分中,我們研究了條件語句

該指南很長,但實際上只顯示如何控制邏輯流程。 本指南顯示您可以比較變量的不同方式。

上圖顯示了本週指南中的第一個例子:

#!/斌/慶典

NAME1 =“加里”
NAME2 =“鮑勃”

如果[“$ name1”=“$ name2”]
然後
迴聲“名稱匹配”
其他
迴聲“名稱不匹配”
科幻


在上面的腳本中,我定義了名為name1和name2的兩個變量,並為它們分配了值“gary”和“bob”。 由於變量包含在引號之間,所以它們被稱為字符串變量,隨著教程的繼續,它們變得更加相關。

所有腳本都會比較$ name1和$ name2的值,如果它們匹配,則輸出字符串“名稱匹配”,如果它們不輸出字符串“名稱不匹配”。

$ name1和$ name2變量之間的引號是重要的,因為如果它們中的任何一個的值沒有被設置,那麼腳本仍然可以工作。

例如,如果$ name1從未設置,那麼你會比較“”和“bob”。 如果沒有引號,你會留下=“bob”,這顯然會失敗。

您也可以使用!=表示法來定義不等於,如下所示:

如果[“$ name1”!=“$ name2”]

08年2月

BASH初學者指南 - 比較字符串

BASH教程 - 比較字符串。

在上面的例子中,測試比較了相同的兩個字符串,並且問問題在字母表中bob之前是否加入?

很明顯,答案是否定的。

該腳本引入了小於運算符(<)。 由於小於運算符也用於重定向,所以必須用斜杠(\)將其轉義,意味著小於這個原因,因此在上面的腳本中我比較了“$ name1”\ <“$ name2”。

小於的相反顯然大於。 而不是使用\ <使用\>。

例如

如果[“$ name1”\>“$ name2”]

08年3月

BASH初學者指南 - 比較字符串

BASH教程 - 比較字符串。

如果你想測試一個變量是否有值,你可以使用下面的測試:

如果[-n $ name2]

在上面的腳本中,我測試了是否給$ name2賦予了一個值,如果它沒有“沒有bob,沒有bob出現”的消息。

08年04月04日

BASH初學者指南 - 比較字符串

BASH教程 - 比較字符串。

在過去的幻燈片中,我們介紹了是否設置了變量。 有時雖然可能已經設置了一個變量,但它實際上可能沒有值。

例如:

name1 =“”

要測試變量是否有值(即長度為零),請使用-z,如下所示:

如果[-z $ name1]

在上面的腳本中,我將$ name1設置為零長度字符串,然後使用-z進行比較。 如果$ name1的長度為零,則會顯示消息“gary已晚上出去”。

08年05月05日

BASH初學者指南 - 比較數字

BASH教程 - 比較數字。

迄今為止所有的比較都是針對字符串的。 比較數字呢?

上面的腳本顯示了比較兩個數字的一個例子:

#!/斌/慶典

一個= 4
B = 5

如果[$ a = $ b]
然後
迴聲“4 = 5”
其他
迴聲“4不等於5”
科幻

要將變量設置為數字,只需將其設置為不帶引號。 然後您可以將數字與等號進行比較。

但我更喜歡使用以下運算符來比較兩個數字:

如果[$ a -eq $ b]

08年06月

BASH初學者指南 - 比較數字

BASH教程 - 比較數字。

如果你想比較一個數字是否小於另一個數字,你可以使用小於運算符(<)。 與字符串一樣,你必須用斜線來避開小於操作符。 (\ <)。

比較數字的更好方法是使用下面的符號:

例如:

如果[$ a -lt $ b]

如果[$ a -le $ b]

如果[$ a -ge $ b]

如果[$ a -gt $ b]

08年7月

BASH初學者指南 - 比較數字

BASH教程 - 比較數字。

最後,對於本指南,如果您想測試兩個數字是否不同,可以使用小於和大於運算符(<>)或-ne,如下所示:

如果[$ a <> $ b]

如果[$ a -ne $ b]

08年08月

BASH初學者指南 - 比較運算符 - 總結

如果您錯過了本指南的前三部分,您可以點擊以下鏈接找到它們:

在本指南的下一部分中,我將介紹算術。