天天看點

case流程控制語句

case流程控制語句在linux中有其獨到的一面,使得在程式設計過程中能夠在腳本編寫的過程中具備多個選項功能,使其功能多樣化,其具備簡單,快速的特點。

一、case流程語句結構圖

    根據流程圖可以知道,在所給出的條件中,首先将“變量值”與模式1進行比較,若取值相同

則執行模式1後的指令序列,直到遇見雙分号“;;”後跳轉至esac,表示分支結束;若與模式1不相比對,則繼續與模式2 進行比較,若取值相同則執行模式2 後的指令序列,直到遇見雙分号“;;”後跳轉至esac,表示結束分支,……依次類推,若找不到任何比對的值,則執行預設模式“*)”後的指令序列,直到遇見esac後結束分支

二、case流程控制文法

    case 變量值 in

        模式1)

            指令序列1

            ;;

        模式2)

            指令序列2

        …………

        *)

        預設指令序列

    esac

三、case語句執行個體

    3.1  

<code>!</code><code>/bin/bash</code>

<code>echo</code> <code>"*******************************"</code>

<code>echo</code> <code>"      1) Copy          "</code>

<code>echo</code> <code>"       2) Delete         "</code>

<code>echo</code> <code>"      3) Backup         "</code>

<code>echo</code> <code>"      4) Quit          "</code>

<code>read</code> <code>-p </code><code>"請輸入您的選擇:"</code> <code>sl</code>

<code>case</code> <code>$sl </code><code>in</code>

<code>        </code><code>1)</code>

<code>        </code><code>echo</code> <code>"您選擇的是拷貝"</code>

<code>        </code><code>;;</code>

<code>        </code><code>2)</code>

<code>        </code><code>echo</code> <code>"您選擇的是删除"</code>

<code>        </code><code>3)</code>

<code>        </code><code>echo</code> <code>"您選擇的是備份"</code>

<code>        </code><code>4)</code>

<code>        </code><code>echo</code> <code>"退出"</code>

<code>        </code><code>*)</code>

<code>        </code><code>echo</code> <code>"請輸入有效選項"</code>

<code>esac</code>

    3.2

<code>#!/bin/bash</code>

<code>read</code> <code>-p </code><code>"請輸入一個區号:"</code> <code>num</code>

<code>case</code> <code>$num </code><code>in</code>

<code>    </code><code>*)</code><code>echo</code> <code>-n </code><code>"中國"</code><code>;;&amp;</code>

<code>    </code><code>03*)</code><code>echo</code> <code>-n </code><code>"河南省"</code><code>;;&amp;</code>

<code>        </code><code>??71)</code><code>echo</code> <code>"鄭州市"</code><code>;;</code>

<code>        </code><code>??94)</code><code>echo</code> <code>"周口市"</code><code>;;</code>

<code>        </code><code>??18)</code><code>echo</code> <code>"許昌市"</code><code>;;</code>

<code>    </code><code>01*)</code><code>echo</code> <code>-n </code><code>"北京市"</code><code>;;&amp;</code>

<code>        </code><code>??91)</code><code>echo</code> <code>"昌平區"</code><code>;;</code>

<code>        </code><code>??92)</code><code>echo</code> <code>"順義區"</code><code>;;</code>

<code>        </code><code>??97)</code><code>echo</code> <code>"東風區"</code><code>;;</code>

注:使用的“;&amp;”表示語句經過該條件之後不結束而是緊跟着下個條件繼續執行,直至碰到;;或esac等。而使用“;;&amp;”結尾表示在使用case中能夠使用“*”和"?",其分别表示任意多個任意字元和一個任意字元,語句不會停止在“;;&amp;”此結尾處,而會依舊向下查詢如果條件滿足則繼續輸出,直至碰倒";;"或esac結尾才能結束。

本文轉自 CARYFLASH 51CTO部落格,原文連結:http://blog.51cto.com/maoxiaoxiong/1840658

繼續閱讀