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 條...