08年1月
BASH初學者指南 - 比較東西
在BASH教程的前一部分中,我們研究了條件語句 。
該指南很長,但實際上只顯示如何控制邏輯流程。 本指南顯示您可以比較變量的不同方式。
上圖顯示了本週指南中的第一個例子:
#!/斌/慶典
NAME1 =“加里”
NAME2 =“鮑勃”如果[“$ name1”=“$ name2”]
然後
迴聲“名稱匹配”
其他
迴聲“名稱不匹配”
科幻
在上面的腳本中,我定義了名為name1和name2的兩個變量,並為它們分配了值“gary”和“bob”。 由於變量包含在引號之間,所以它們被稱為字符串變量,隨著教程的繼續,它們變得更加相關。
所有腳本都會比較$ name1和$ name2的值,如果它們匹配,則輸出字符串“名稱匹配”,如果它們不輸出字符串“名稱不匹配”。
$ name1和$ name2變量之間的引號是重要的,因為如果它們中的任何一個的值沒有被設置,那麼腳本仍然可以工作。
例如,如果$ name1從未設置,那麼你會比較“”和“bob”。 如果沒有引號,你會留下=“bob”,這顯然會失敗。
您也可以使用!=表示法來定義不等於,如下所示:
如果[“$ name1”!=“$ name2”]
08年2月
BASH初學者指南 - 比較字符串
在上面的例子中,測試比較了相同的兩個字符串,並且問問題在字母表中bob之前是否加入?
很明顯,答案是否定的。
該腳本引入了小於運算符(<)。 由於小於運算符也用於重定向,所以必須用斜杠(\)將其轉義,意味著小於這個原因,因此在上面的腳本中我比較了“$ name1”\ <“$ name2”。
小於的相反顯然大於。 而不是使用\ <使用\>。
例如
如果[“$ name1”\>“$ name2”]
08年3月
BASH初學者指南 - 比較字符串
如果你想測試一個變量是否有值,你可以使用下面的測試:
如果[-n $ name2]
在上面的腳本中,我測試了是否給$ name2賦予了一個值,如果它沒有“沒有bob,沒有bob出現”的消息。
08年04月04日
BASH初學者指南 - 比較字符串
在過去的幻燈片中,我們介紹了是否設置了變量。 有時雖然可能已經設置了一個變量,但它實際上可能沒有值。
例如:
name1 =“”
要測試變量是否有值(即長度為零),請使用-z,如下所示:
如果[-z $ name1]
在上面的腳本中,我將$ name1設置為零長度字符串,然後使用-z進行比較。 如果$ name1的長度為零,則會顯示消息“gary已晚上出去”。
08年05月05日
BASH初學者指南 - 比較數字
迄今為止所有的比較都是針對字符串的。 比較數字呢?
上面的腳本顯示了比較兩個數字的一個例子:
#!/斌/慶典
一個= 4
B = 5如果[$ a = $ b]
然後
迴聲“4 = 5”
其他
迴聲“4不等於5”
科幻
要將變量設置為數字,只需將其設置為不帶引號。 然後您可以將數字與等號進行比較。
但我更喜歡使用以下運算符來比較兩個數字:
如果[$ a -eq $ b]
08年06月
BASH初學者指南 - 比較數字
如果你想比較一個數字是否小於另一個數字,你可以使用小於運算符(<)。 與字符串一樣,你必須用斜線來避開小於操作符。 (\ <)。
比較數字的更好方法是使用下面的符號:
- 小於-lt
- 小於或等於-le
- 大於-gt
- 大於或等於-ge
例如:
如果[$ a -lt $ b]
如果[$ a -le $ b]
如果[$ a -ge $ b]
如果[$ a -gt $ b]
08年7月
BASH初學者指南 - 比較數字
最後,對於本指南,如果您想測試兩個數字是否不同,可以使用小於和大於運算符(<>)或-ne,如下所示:
如果[$ a <> $ b]
如果[$ a -ne $ b]
08年08月
BASH初學者指南 - 比較運算符 - 總結
如果您錯過了本指南的前三部分,您可以點擊以下鏈接找到它們:
在本指南的下一部分中,我將介紹算術。