shell判斷語句

2022-09-12 20:36:29 字數 2109 閱讀 7780

1.test命令  也可以用[  ]來表示

返回值為0時為true,返回值為1時為false。

例1:str1=aaa,str2=bbb

1)判斷字串是否為空(省略了-n選項,-n選項是不為空,-z選項為空)

[root@xiaoxiao ~]# str1=aaa

[root@xiaoxiao ~]# str2=bbb

[root@xiaoxiao ~]# [ $str1 ]

[root@xiaoxiao ~]# echo $?

0[root@xiaoxiao ~]# [ -z $str1 ]

[root@xiaoxiao ~]# echo $?

1[root@xiaoxiao ~]# [ -n $str1 ]

[root@xiaoxiao ~]# echo $?

0

2)判斷兩個字串是否相等

[root@xiaoxiao ~]# [ $str1 =$str2 ]

[root@xiaoxiao ~]# echo $?

1

3)判斷兩個數字時候相等

[root@xiaoxiao bin]# str1=3

[root@xiaoxiao bin]# str2=2

[root@xiaoxiao bin]# [ $str1 -eq $str2 ] && echo equal || echo

noequal

noequal

[root@xiaoxiao bin]# str1=2

[root@xiaoxiao bin]# [ $str1 -eq $str2 ] && echo equal || echo

noequal

equal

2.邏輯運算子

# help let

&與|或

!非&&邏輯與 (cmd1 && cmd2,當cmd為ture時執行cmd2,為false時不繼續執行cmd2)

||邏輯或(cmd1 && cmd2,當cmd1為fasle時執行cmd2,為true時不繼續執行cmd2)

例:str1=aaa;str2=bbb

[root@xiaoxiao ~]# echo

$str1 $str2

aaa bbb

[root@xiaoxiao ~]# [ $str1 = $str2 ] && echo truestrs || echo

falsestrs

falsestrs

[root@xiaoxiao bin]# str1=aaa;str2=aaa

[root@xiaoxiao bin]# [ $str1 = $str2 ] && echo truestrs || echo falsestrs

truestrs

判斷str1與str2兩個字串是否相等,cmd1 && cmd2 || cmd3 如果cmd1為真則執行cmd2,如果cmd1 && cmd2 命令cmd1為假則不行cmd2;此時將cmd1 && cmd2 的運算返回值 || cmd3邏輯或時,cmd1 && cmd2 的返回值是false,則執行cmd3。

^異或(可以實現兩個值得互換,在let運算中)

[root@xiaoxiao bin]# str1=6;str2=5

[root@xiaoxiao bin]# str1=$[str1^str2];str2=$[str1^str2];str1=$[str1^str2]

[root@xiaoxiao bin]#

echo

$str1 $str2

56

判斷是否是數字 

[[ "$n" =~ ^[[:digit:]]+$  ]] && echo digit || echo "no digit";[[ "$n" =~ ^[0-9]+$  ]] && echo digit || echo "no digit"

""中括號中的變數最好用引號,避免造成語法的錯誤

判斷字尾

# .表示乙個字元 .*表示任意字元 ..*表示至少乙個字元

[[ $filename =~ ..*\.sh$ ]] && echo sh ||echo "not sh" 

Shell 判斷語句

檔案判斷運算子 b 當file存在並且是塊檔案時返回真 c 當file存在並且是字元檔案時返回真 d 當pathname存在並且是乙個目錄時返回真 e 當pathname指定的檔案或目錄存在時返回真 f 當file存在並且是正規檔案時返回真 g 當由pathname指定的檔案或目錄存在並且設定了sg...

if判斷語句

判斷語句 if if 要判斷的條件 條件成立的時,要做的事情 else 條件不成立的時候,要做的事情 注意 的縮排為乙個tab鍵,或者四個空格 tab鍵和空格不要混用 age 13 if age 18 print 允許進入網咖 else print 未成年,不允許進入網咖 邏輯運算子 and 條件1...

shell指令碼的條件判斷語句

條件判斷,顧名思義,就是對當前引數進行相關條件的比較,如果符合要求就進行相對應的操作,條件語句涉及到兩種語法,if和case,兩種語法都各具特色,我們可以通過例項來進行比較 if 判斷條件1 then 條件為真的分支 elif 判斷條件2 then 條件為真的分支 elif 判斷條件3 then 條...