shell中的運算
1> 數學比較運算
-eq 等於
-gt 大於
-lt 小於
-ge 大於或等於
-le 小於或等於
-ne 不等於
2> 字符串比較運算
注意字符串一定要用引號引起來
== 檢測兩個字符串是否相等 相等返回true
!= 檢測兩個字符串是否相等,不相等返回true
-z 檢測字符串長度是否爲0
-n 檢測字符串長度是否不爲0
3> 文件比較與檢查
-d 檢查文件是否存在且爲目錄
返回值爲1,說明不存在,在Linux操作系統中,只有當返回值爲0的時候纔算是true。
-e 檢查文件或者目錄是否存在
-f 檢查文件是否存在且爲文件
-r 檢查文件是否存在且爲可讀
-s 檢查文件是否存在且不爲空
-w 檢查文件是否存在且可寫
-x 檢查文件是否存在且可執行
-O 檢查文件是否存在且被當前用戶擁有
-G 檢查文件是否存在並且默認組爲當前用戶組
file1 -nt file2 檢查file1是否比file2新
file1 -ot file2 檢查file1是否比file2舊
file1 -ef file2 檢查file1與file2是否指向同一個inode,也就是說是否擁有相同的硬鏈接
4> 邏輯運算
邏輯與運算 &&
邏輯或運算 ||
邏輯非運算 !
5> 賦值運算
= 賦值運算符
if語法
語法一:單if語句
使用範圍:只需要一步判斷,條件返回真幹什麼或者條件返回假幹什麼。
語句格式:
if [condition] #condition值爲true或false
then
commands
fi
例子:加入沒有/tmp/abc這個目錄 就創建
現在運行一下上面這個腳本文件
語法二:if-then-else 語句
適用範圍:兩步判斷,條件爲真幹什麼,條件爲假幹什麼
語法格式:
if [condition]
then
commands1
else
commands
fi
例子:判斷當前用戶是否爲root
運行上述腳本文件
語法三:if-then-elif語句
適用範圍:多於兩個以上的判斷結果
語法格式:
if [condition 1]
then
commands1
elif [condition 2]
then
commands2
...
else
commandsx
fi
例子:比較兩個數的大小
運行上述腳本文件:
上述紅框中表示傳遞的參數。
if的高級應用
1. 條件符號使用雙圓括號,可以在條件中植入數學表達式
執行上面的腳本文件
注意:雙小圓括號中的比較運算符,使用的是我們傳統的比較運算符 > < >= <= == !=
2. 使用方括號可以在條件中使用通配符
運行上述腳本文件