天天看点

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

继续阅读