linux shell指令碼(邏輯判斷和字串比較)

2021-08-28 09:19:11 字數 1264 閱讀 7452

常用比較和判斷:

整數比較:

-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 都為真,才返回真,否則返回假。演示 測試...