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

一、case流程语句结构图

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

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

二、case流程控制语法

case 变量值 in

模式1)

命令序列1

;;

模式2)

命令序列2

;;

…………

*)

默认命令序列

esac

三、case语句实例

3.1

!/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

#!/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结尾才能结束。

case语法2的更多相关文章

  1. case语法练习脚本之判断

    case语法练习脚本之判断 #!/bin/bash read -p "请输入一个字符,并按enter键确认:" key case "$key" in [a-z] ...

  2. bash 中的case语法

    CASE语法格式备忘 case $variable-name in pattern1) command1 ... .... commandN ;; pattern2|pattern3|pattern4 ...

  3. Shell case语法结构解析

    case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构,每个 case 分支用右圆括号开始,用两个分号 ;; 表示 break,即执行结束,跳出整个 ...

  4. Verilog RTL优化策略(一):推荐使用assign语法替代if-else和case语法

    参考 <手把手教你设计CPU--RISC-V处理器篇> 先给出不用if-else和case的原因 Verilog中的if-else和case语法存在两大缺点: 不能传播不定态X: 会产生优 ...

  5. HiSql 实现case语法操作 新一代无实体ORM框架

    HiSql 实现case语法操作 在SqlServer,Oralce,Hana,PostGreSql,MySql 这些数据都支持SQL case语法,平常在实现业务开发中也会常用到,那么HiSql对于 ...

  6. SQL Server高级内容之case语法函数

    1.Case函数的用法  (1)使用类似:switch-case与if-else if. (2)语法: case [字段] when 表达式 then 显示数据 when 表达式 then 显示数据 ...

  7. [lua]尝试一种Case语法糖

    function CaseT(arg) function proxy(caller) caller.yield(r) end -- proxy return function (cond) if (c ...

  8. shell case语法

    在阅读hadoop相关的脚本文件时,遇到case语句,好久不写shell,忘了不少,复习下shell的case语句:                             运行结果:         ...

  9. delphi中Case语法的使用方法

    Case 语句If...Then…Else 语句适合选项较少的情况,如果有很多选项的话利用If 语句就比较麻烦,在这种情况下,Case 语句就容易多了.Case 语句的语法如下: case <表 ...

随机推荐

  1. vue mand-mobile ui加class不起作用的问题 css权重问题

    vue mand-mobile ui加class不起作用的问题 css权重问题组件的样式优先权比自己定的class高多加几层权重才行,要直接用样式覆盖也可以在前面多加几层class,定位更精确了才会覆 ...

  2. 创建servlet程序知识点详解---servlet-day01

    方法调用完后,其中的所有局部变量都会消失 ###网络架构 -CS:Client Server  客户端服务器 特点:每种平台都需要开发相对应的app, 开发成本高  功能升级需要下载最新的客户端,用户 ...

  3. hiho一下 第168周

    题目1 : 扩展二进制数 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 我们都知道二进制数的每一位可以是0或1.有一天小Hi突发奇想:如果允许使用数字2会发生什么事情? ...

  4. Docker Kubernetes Service 网络服务代理模式详解

    Docker Kubernetes  Service 网络服务代理模式详解 Service service是实现kubernetes网络通信的一个服务 主要功能:负载均衡.网络规则分布到具体pod 注 ...

  5. L2-003. 月饼

    L2-003. 月饼 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼.现给定所有种类月饼的库存量.总售价.以及市场的最大需求量,请你计算可以获得的最大收益是多少. 注意:销售时 ...

  6. 关于MVC RouteExistingFiles疑问后续

    前两天写了<关于MVC RouteExistingFiles疑问>,本来希望寻求大佬快速解答,奈何无人问津. 只能查看.NET 源代码,可以使用反编译工具(我用IL spy),也可以在线查 ...

  7. LINQ to Entities 不识别方法“System.String get_Item(Int32)”,因此该方法无法转换为存储表达式。

    1.LINQ to Entities 不识别方法“System.String get_Item(Int32)”,因此该方法无法转换为存储表达式.项目中发现linq to entities 不识别? , ...

  8. _spellmod

    -- 技能修改 -- 小技巧:可以针对技能进行修改 (进行会对其进行更新,增加技能开关) `comment` 备注 `spellId` 技能ID `reqId`需求ID `dmgMod`伤害倍数 `h ...

  9. Vue 兼容 IE9 全功能正常使用的全面解决方案

    https://blog.csdn.net/VhWfR2u02Q/article/details/80863626

  10. SQL Server 2008 分区函数和分区表详解

    [摘要]本文详细介绍SQL Server 2008 分区函数和分区表,包括查询某个分区.归档数据.添加分区.删除分区等内容. 当我们数据量比较大的时候,我们需要将大型表拆分为多个较小的表,则只访问部门 ...