常用比較和判斷:
整數比較:
-lt 小於
-le 小於等於
-gt 大於
-ge 大於等於
-eq 等於
-ne 不等於
例:if [ $ -le 10 ]; then
echo "$小於等於10"
fi注意:if [ ]裡兩邊要有空格
檔案測試:
-f 存在且是普通檔案
-d 存在且是目錄
-s 存在且位元組數大於0
-r 存在且可讀
-w 存在且可寫
-x 存在且可執行
例:if [ -f $ ];then
echo "$存在且是檔案"
fi
邏輯判斷使用 &&(且)、||(或)、!(取反)
例:if [ ! -d $ ]; then
echo "$不存在或者不是目錄"
fi
字串比較:常用比較運算子:= 或者(==)、!=
-z表示後面的值是否為空,為空則返回true,否則返回false。
-n表示判斷後面的值是否為空,不為空則返回true,為空則返回false。
例:if [ -z $ ] || [ -z $ ]; then
echo "$值為空或者$的值為空"
fi str="root"
if [ $ == 'root' ]; then
echo "$字串與root相等"
fi
注意:
比較運算子的兩邊都有空格分隔(即==或=兩邊要有空格,如果沒有空格,不能做判斷,直接執行if後的語句),同時要注意比較運算子兩邊的變數是否可能為空,
例:str="root"
if [ $=="root" ];then
echo "erro"
fi==兩邊沒有空格,不會進行if判斷,直接執行echo "erro"
在使用變數比較字串之前,最好在判斷之前加乙個判斷變數是否為空 或者使用雙引號將其括起來,
注意,必須使用雙引號,因為變數在雙引號中才會被解析。
例:str="root"
if [ -n $ ];then
echo "$值不為空"
fi if [ "$" == "root" ];then
echo "$與root相等"
fi
Linux Shell指令碼邏輯操作符簡介
在寫程式時,會用到條件判斷,測試條件是否成立。很多時候,判斷條件是多個的,這個時候需要用到邏輯操作符。shell指令碼中常用的有哪些邏輯操作符呢?1 邏輯與 a 格式 conditon1 a condition2 結果 codition1和conditon2 都為真,才返回真,否則返回假。演示 測試...
Linux Shell指令碼邏輯操作符簡介
在寫程式時,會用到條件判斷,測試條件是否成立。很多時候,判斷條件是多個的,這個時候需要用到邏輯操作符。shell指令碼中常用的有哪些邏輯操作符呢?1 邏輯與 a 格式 conditon1 a condition2 結果 codition1和conditon2 都為真,才返回真,否則返回假。演示 測試...
Linux Shell指令碼邏輯操作符簡介
在寫程式時,會用到條件判斷,測試條件是否成立。很多時候,判斷條件是多個的,這個時候需要用到邏輯操作符。shell指令碼中常用的有哪些邏輯操作符呢?1 邏輯與 a 格式 conditon1 a condition2 結果 codition1和conditon2 都為真,才返回真,否則返回假。演示 測試...