shell中的分支

來源:互聯網
上載者:User
if語句 文法1
if 條件then 命令(集合)fi

這裡的條件就是使用test語句或者中括弧語句(前一篇文章已經總結)
注意if語句必須以fi終止

練習:

#if testif [ "13" -lt "12" ]  # "13" 前一個空格,“13”後也有一個空格。then        echo "yes 13 is less then 12"else        echo "NO"fi
文法2
if 條件1then      命令1elif 條件2then      命令2else     命令3fi
#!/bin/bash#if test#this is a comment lineecho "Enter your filename:"read myfileif [ -e $myfile ]then   if [ -s $myfile ];then      echo "$myfile exist and size greater than zero"   else      echo "$myfile exist but size is zero"   fielse    echo "file no exist"fi
case多選擇語句

case多選擇語句格式:

case 變數/運算式 in模式1)    命令1    ;;模式2)    命令2    ;;esac
case取值後面必須為單詞in; 每一模式必須以右括弧結束。 取值可以為變數或常數。 匹配發現取值符合某一模式後,其後的所有命令開始執行,直到;; 模式比對*表示任一字元; ?表示任意單字元; [..](注意:只有兩個點)表示類或範圍中任一字元
#!/bin/bash#case selectecho -n "enter a number from 1 to 3:"read numcase $num in1)        echo "you select 1"        ;;2)        echo "you select 2"        ;;3)        echo "you select 3"        ;;y|Y)        echo “you select y”        ;;*)        echo "`basename $0`:this is not between 1 and 3">&2        exit;        ;;esac
所有的模式具有優先順序,按照出現的順序優先匹配 模式可以寫成運算式表示一個範圍如y|Y 不能像C語言switch-case一樣,將執行相同操作的多個模式寫在一起,如果多個模式執行同一個操作,用|把他們組合起來,表示其中一個被匹配上執行相應的分支操作。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.