Shell中的case in 语句
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 语句相关推荐
- Linux之shell中的case in语句
文章目录 shell中的case in 语句 1.case in 的用法 2.case in和正则表达式 shell中的case in 语句 1.case in 的用法 格式: 1 | case ex ...
- shell中使用case以及shift处理命令行参数
shell或bash使用case与shift处理多个命令行参数 1. shift命令 在bash中定义了9个位置变量,分别使用$1,$2,-$9,借助 shift 命令可以访问多于9个的命令行参数. ...
- shell中的 case in 用法
shell中的 case in 用法 用法case;in;esac都是shell关键字expression是表达式(既可以是一个变量,一个数字,一个字符串,还可以是一个数学计算表达式,或者是命令的执行 ...
- shell中的for循环语句
shell中的for循环语句 for语句 语法: for 变量 in 值1 值2 值3 -- do 语句 done 机理:把各值依次赋给for后的变量,每赋值一次,便执行一次do与done之间的语句 ...
- 【CentOS 7Shell编程4】,shell中的case判断#180208
2019独角兽企业重金招聘Python工程师标准>>> hellopasswd shell中的case判断 格式case 变量名in value1) command ;; value ...
- Shell编程中的case in语句
1.用法 case expression in path1)执行语句;; path2)执行语句;; path3)执行语句;; *)默认执行语句 esac 2.几点说明 case . in esac 都 ...
- SQL中的CASE WHEN语句
有这样一道面试题: 一张表数据如下 1900-1-1 胜 1900-1-1 胜 1900-1-1 负 1900-1-2 胜 1900-1-2 胜 写出一条SQL语句,使检索结果如下: 胜 负 1900 ...
- mysql中使用case when语句
在web开发过程中,很多时候良好的sql不仅可以加快数据响应时间,更重要可以省略大量的后端代码.比如说对大量数据的分组,统计(求和,求差,求平均,求百分比等等),排序,如果可以放到sql里面去做,还是 ...
- Matlab中switch, case, otherwise语句
目录 语法 说明 示例 比较单个值 与多个值进行比较 switch, case, otherwise语句是执行多组语句中的一组. 语法 switch switch_expressioncase cas ...
最新文章
- javaweb学习总结(八)——HttpServletResponse对象(二)
- dhcp request汉字乱码分析
- App.js实现使用js开发app的应用,此文是中文文档
- ssh长时间不操作便断开_连接SSH长时间不操作断开解决办法
- [css] CSS中的calc()有什么作用?
- Redis Java调用
- su sudo gksudo-转
- (转)解决nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed错误
- 《YOLO系列原理实战笔记》高清.pdf
- RabbitMQ系列(七)--批量消息和延时消息
- 推荐阅读20100603
- java报错: 类重复: newemission.calculate_java当中的继承(一)
- 北京理工珠海学院的计算机专业怎么样,北京理工大学珠海学院怎么样?北京理工大学珠海学院优势有哪些?...
- HIBERNATE:disjunction和conjunction构造复杂的查询条件.
- d954(D9546)
- Nginx 搭建DASH服务器
- 在电脑上安装了百度一键root工具后,启动adb提示:adb server version (31) doesn't match this client (36); killing...
- 几何画板(可绘制复杂函数等)下载方式
- git更新pull不下来代码_git pull更新错误解决办法
- ubuntu 升级后无法连接wifi问题(Wireless 8265 / 8275网卡)