Linux Shell腳本邏輯操做符簡介

在寫程序時,會用到條件判斷,測試條件是否成立。不少時候,判斷條件是多個的,這個時候須要用到邏輯操做符。shell腳本中經常使用的有哪些邏輯操做符呢?shell

 

一、邏輯與: -a測試

格式: conditon1 -a condition2.net

結果:codition1和conditon2 都爲真,才返回真,不然返回假。code

演示:測試可執行文件lnmpblog

 

[plain]  view plain copy
 
  1. [root@localhost ~]# [ -x lnmp -a -f lnmp ]   #lmmp是可執行且是文件 結果返回真  
  2. [root@localhost ~]# echo $?  
  3. 0  
  4. [root@localhost ~]# [ -x lnmp -a -d lnmp ]   #lnmp可執行但不是目錄 結果返回假  
  5. [root@localhost ~]# echo $?  
  6. 1  

 

拓展:該操做符相似於其餘語言的&& ,a 是and 的第一個字母ip

二、邏輯或:-o lnmp

格式: condition1 -o conditon2get

結果:condition1和condition2中,有一個條件爲真,即返回真,不然返回假it

演示:測試可執行文件lnmpio

 

[plain]  view plain copy
 
  1. [root@localhost ~]# [ -x lnmp -o -d lnmp ]  #lmmp是可執行但不是目錄 結果仍返回真  
  2. [root@localhost ~]# echo $?  
  3. 0  
  4. [root@localhost ~]# [ -L lnmp -o -d lnmp ]   #lnmp可執行文件,但不是目錄,也不是符號連接文件, 結果返回假  
  5. [root@localhost ~]# echo $?  
  6. 1  

 

拓展:該操做相似於其餘語言的||

提醒:-o 是單詞or 的第一個字母o,而不是數字0

三、邏輯非:!

格式:! condition

結果:返回條件測試condition結果的相反值

演示:測試可執行文件lnmp

[plain]  view plain copy
 
  1. [root@localhost ~]# [ ! -x lnmp ] #lnmp 是可執行文件,返回假  
  2. [root@localhost ~]# echo $?  
  3. 1  
  4. [root@localhost ~]# [ ! -d lnmp ] #lnmp 不是目錄,返回真  
  5. [root@localhost ~]# echo $?  
  6. 0                                 
相關文章
相關標籤/搜索