case in 的用法

case expression inpattern 1)statement1;;pattern 2)statement2;;
……*)statementn
esac
  • 其中:case in 和esac都是shell关键字,expression表示表达式,pattern表示匹配模式
  • expression既可以是一个变量、一个数字、一个字符串,也可以是一个数学计算表达式或者命令的执行结果
  • pattern可以是一个数字、一个字符串、一个简单的正则表达式
  • 执行过程:
  • case会将expression的值与pattern1、pattern2等逐个进行匹配:
  • 如果expression和某个模式匹配成功,就会执行这个模式后面对应的所有语句(该语句可以有一条,也可以有多条),直到遇见双分号;;才停止,然后整个case语句就执行完毕,跳出case语句,执行esac后面的其他语句
  • 如果expression没有匹配到任何一个模式,那么就执行*)后面的语句(表示其他所有值),直到遇见双分号;;或者esac才结束。)相当于多个if的分支语句中最后的else部分
  • 对*)的说明:
  • 1.case in语句中的*)用来“托底”,万一expression没有匹配到任何一个模式,*)部分可以做一些“善后”工作,或者给用户一些提示
  • 2.可以没有*)部分,如果expression没有匹配到任何一个模式,就不执行任何操作
  • 3.除了最后一个分支外(可以是普通分支,也可以是*)分支),其他的分支都必须以;;结尾,;;代表一个分支的结束。最后一个分支可以写;;,也可以不写。因为无论如何,执行到esac都会结束整个case in语句
  • 例:

case in 和正则表达式

  • case in 的pattern部分支持简单的正则表达式:
格式 说明
* 表示任意字符串
[abc] 表示a、b、c三个字符中的任意一个
[m-n] 表示从m到n的任意一个字符
[0-9] 表示0-9的任意一个数字
[0-9a-zA-Z] 表示任意数字或字母
l 表示多重选择,类似逻辑运算中的或运算
abc l xyz 表示abc或者xyz
  • 例:
  • 未解决时的运行结果

  • 解决后的运行结果

Shell中的case in 语句相关推荐

  1. Linux之shell中的case in语句

    文章目录 shell中的case in 语句 1.case in 的用法 2.case in和正则表达式 shell中的case in 语句 1.case in 的用法 格式: 1 | case ex ...

  2. shell中使用case以及shift处理命令行参数

    shell或bash使用case与shift处理多个命令行参数 1. shift命令 在bash中定义了9个位置变量,分别使用$1,$2,-$9,借助 shift 命令可以访问多于9个的命令行参数. ...

  3. shell中的 case in 用法

    shell中的 case in 用法 用法case;in;esac都是shell关键字expression是表达式(既可以是一个变量,一个数字,一个字符串,还可以是一个数学计算表达式,或者是命令的执行 ...

  4. shell中的for循环语句

    shell中的for循环语句 for语句 语法: for 变量 in 值1 值2 值3 -- do 语句 done 机理:把各值依次赋给for后的变量,每赋值一次,便执行一次do与done之间的语句 ...

  5. 【CentOS 7Shell编程4】,shell中的case判断#180208

    2019独角兽企业重金招聘Python工程师标准>>> hellopasswd shell中的case判断 格式case 变量名in value1) command ;; value ...

  6. Shell编程中的case in语句

    1.用法 case expression in path1)执行语句;; path2)执行语句;; path3)执行语句;; *)默认执行语句 esac 2.几点说明 case . in esac 都 ...

  7. SQL中的CASE WHEN语句

    有这样一道面试题: 一张表数据如下 1900-1-1 胜 1900-1-1 胜 1900-1-1 负 1900-1-2 胜 1900-1-2 胜 写出一条SQL语句,使检索结果如下: 胜 负 1900 ...

  8. mysql中使用case when语句

    在web开发过程中,很多时候良好的sql不仅可以加快数据响应时间,更重要可以省略大量的后端代码.比如说对大量数据的分组,统计(求和,求差,求平均,求百分比等等),排序,如果可以放到sql里面去做,还是 ...

  9. Matlab中switch, case, otherwise语句

    目录 语法 说明 示例 比较单个值 与多个值进行比较 switch, case, otherwise语句是执行多组语句中的一组. 语法 switch switch_expressioncase cas ...

最新文章

  1. javaweb学习总结(八)——HttpServletResponse对象(二)
  2. dhcp request汉字乱码分析
  3. App.js实现使用js开发app的应用,此文是中文文档
  4. ssh长时间不操作便断开_连接SSH长时间不操作断开解决办法
  5. [css] CSS中的calc()有什么作用?
  6. Redis Java调用
  7. su sudo gksudo-转
  8. (转)解决nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed错误
  9. 《YOLO系列原理实战笔记》高清.pdf
  10. RabbitMQ系列(七)--批量消息和延时消息
  11. 推荐阅读20100603
  12. java报错: 类重复: newemission.calculate_java当中的继承(一)
  13. 北京理工珠海学院的计算机专业怎么样,北京理工大学珠海学院怎么样?北京理工大学珠海学院优势有哪些?...
  14. HIBERNATE:disjunction和conjunction构造复杂的查询条件.
  15. d954(D9546)
  16. Nginx 搭建DASH服务器
  17. 在电脑上安装了百度一键root工具后,启动adb提示:adb server version (31) doesn't match this client (36); killing...
  18. 几何画板(可绘制复杂函数等)下载方式
  19. git更新pull不下来代码_git pull更新错误解决办法
  20. ubuntu 升级后无法连接wifi问题(Wireless 8265 / 8275网卡)

热门文章

  1. C循环快还是Matlab矩阵快,R、MATLA、Python和C多重循环效率对比
  2. MyBatis-Plus 可视化代码生成器来啦,生产力直接拉满
  3. 双11自动抢红包流程分享
  4. requests模块proxies代理IP设置无效问题的解决
  5. java拼音识别声调_Java源代码计算出拼音的声调字母是哪个
  6. 用计算机一级考试考的照片要求,全国计算机等级考试报名上传照片须知
  7. 好看的网站安全跳转单页源码
  8. TUD研究人员开发的植入式人工智能系统可以进行疾病的早期检测和治疗
  9. 博通团队文本标签提取技术演进
  10. 手机应用搬家是怎么实现的