且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

case流程控制语句

更新时间:2022-09-07 22:47:28

case流程控制语句在linux中有其独到的一面,使得在编程过程中能够在脚本编写的过程中具备多个选项功能,使其功能多样化,其具备简单,快速的特点。

一、case流程语句结构图

    case流程控制语句

    根据流程图可以知道,在所给出的条件中,首先将“变量值”与模式1进行比较,若取值相同

则执行模式1后的命令序列,直到遇见双分号“;;”后跳转至esac,表示分支结束;若与模式1不相匹配,则继续与模式2 进行比较,若取值相同则执行模式2 后的命令序列,直到遇见双分号“;;”后跳转至esac,表示结束分支,……依次类推,若找不到任何匹配的值,则执行默认模式“*)”后的命令序列,直到遇见esac后结束分支

二、case流程控制语法

    case 变量值 in

        模式1)

            命令序列1

            ;;

        模式2)

            命令序列2

            ;;

        …………

        *)

        默认命令序列

    esac

三、case语句实例

    3.1  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
!/bin/bash
echo "*******************************"
echo "      1) Copy          "
echo "       2) Delete         "
echo "      3) Backup         "
echo "      4) Quit          "
echo "*******************************"
read -p "请输入您的选择:" sl
case $sl in
        1)
        echo "您选择的是拷贝"
        ;;
        2)
        echo "您选择的是删除"
        ;;
        3)
        echo "您选择的是备份"
        ;;
        4)
        echo "退出"
        ;;
        *)
        echo "请输入有效选项"
        ;;
esac


    3.2

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash
read -p "请输入一个区号:" num
case $num in
    *)echo -n "中国";;&
    03*)echo -n "河南省";;&
        ??71)echo "郑州市";;
        ??94)echo "周口市";;
        ??18)echo "许昌市";;
    01*)echo -n "北京市";;&
        ??91)echo "昌平区";;
        ??92)echo "顺义区";;
        ??97)echo "东风区";;
esac


注:使用的“;&”表示语句经过该条件之后不结束而是紧跟着下个条件继续执行,直至碰到;;或esac等。而使用“;;&”结尾表示在使用case中能够使用“*”和"?",其分别表示任意多个任意字符和一个任意字符,语句不会停止在“;;&”此结尾处,而会依旧向下查询如果条件满足则继续输出,直至碰倒";;"或esac结尾才能结束。

  


本文转自 CARYFLASH 51CTO博客,原文链接:http://blog.51cto.com/maoxiaoxiong/1840658