Shell 條件判斷

來源:互聯網
上載者:User

標籤:使用   檔案   file   字串   shell   運算式   ash   c   

傳統if 從句子——以條件運算式作為 if條件 
if [ 條件運算式 ] 
then 
command 
command 
command 
else 
command 
command 
fi 
   
   條件運算式 

檔案運算式 
if [ -f  file ]    如果檔案存在 
if [ -d ...   ]    如果目錄存在 
if [ -s file  ]    如果檔案存在且非空 
if [ -r file  ]    如果檔案存在且可讀 
if [ -w file  ]    如果檔案存在且可寫 
if [ -x file  ]    如果檔案存在且可執行   

整數Variant 運算式 
if [ int1 -eq int2 ]    如果int1等於int2   
if [ int1 -ne int2 ]    如果不等於    
if [ int1 -ge int2 ]       如果>= 
if [ int1 -gt int2 ]       如果> 
if [ int1 -le int2 ]       如果<= 
if [ int1 -lt int2 ]       如果< 
   

   字串Variant 運算式 
If  [ $a = $b ]                 如果string1等於string2 
                                字串允許使用賦值號做等號 
if  [ $string1 !=  $string2 ]   如果string1不等於string2       
if  [ -n $string  ]             如果string 非空(非0),返回0(true)  
if  [ -z $string  ]             如果string 為空白 
if  [ $sting ]                  如果string 非空,返回0 (和-n類似)    

邏輯非 !                   條件運算式的相反 
if [ ! 運算式 ] 
if [ ! -d $num ]                        如果不存在目錄$num 


    邏輯與 –a                    條件運算式的並列 
if [ 運算式1  –a  運算式2 ] 


    邏輯或 -o                    條件運算式的或 
if [ 運算式1  –o 運算式2 ] 

   
   邏輯運算式 

    運算式與前面的=  != -d –f –x -ne -eq -lt等合用 
    邏輯符號就正常的接其他運算式,沒有任何括弧( ),就是並列 
if [ -z "$JHHOME" -a -d $HOME/$num ] 

    注意邏輯與-a與邏輯或-o很容易和其他字串或檔案的運算子號搞混了 


  最常見的賦值形式,賦值前對=兩邊的變數都進行評測 
左邊測變數是否為空白,右邊測目錄(值)是否存在(值是否有效) 

if test $num -eq 0      等價於   if [ $num –eq 0 ] 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.