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