shell中的 case in 用法

用法case;in;esac都是shell关键字expression是表达式(既可以是一个变量,一个数字,一个字符串,还可以是一个数学计算表达式,或者是命令的执行结果,只要可以得到expression的值就行)pattern是匹配模式(一个数字,一个字符串,或者一个简单的正则表达式)
case expression inpattern1)statement1;;pattern2)statement2;;......*)statement2
esac

工作模式

case会将expression的值与pattern1~n进行匹配:1 如果expression和某个模式匹配成功,就会执行这个模式后面对应的所有语句,知道遇见分号;;才停止然后真各国case语句就执行完毕,程序会跳出case语句,执行esac后面的语句。2 如果expression没有匹配到任何一个模式,那么就执行*) 后面的语句,知道遇见双分号;;或者esac才结束。相当于多个if语句中的else语句。3 如果expression没有匹配到任何一个模式,那么*)部分就可以做善后工作,或者给用户一些提示。4 可以没有*)部分。如果没有匹配到任何一个模式,那么就不执行任何操作。

注意:

除最后一个一个分支外,其它分支必须以;;结尾,;;代表一个分支的结束,不写会程序错误。

esac会结束整个case in语句。

case in 的pattern 支持部分简单的正则表达式:格式               说明*            表示任意字符串[abc]          表示a b c三个字符中的任意一个m-n            表示m-n中的任意一个字符I(竖杠)   表示多重选择类似于或运算
#!/bin/bashecho “Please input a number”read numcase $num in1)echo “haha”;;
2)echo “hehe”;;
3)echo “xixi”;;
4)echo “dudu”;;
*)    echo “error”
esac

[root@localhost case]# sh 01.sh

Please input a number

2

Hehe

#如果此处需要用echo的话,就不能用read -n 1 因为没有用户输入完整的数据完成后时没有换行符的

#-n 1表示只读一个字符,运行脚本后,只要用户输入一个字符,立即读取结束,不用等待用户按下回车键

[root@localhost case_in]# cat 02.sh

#!/bin/bashecho "In put a character:"#如果此处需要用echo的话,就不能用read -n 1 因为没有用户输入完整的数据完成后时没有换行符的#-n 1表示只读一个字符,运行脚本后,只要用户输入一个字符,立即读取结束,不用等待用户按下回车键read -n 1 charcase $char in[a-zA-Z])echo "letter";;[0-9])echo "Digit";;[,.?!])echo "Punctuation";;*)
esac

[root@localhost case_in]# sh 02.sh

In put a character:

5Digit

[root@localhost case_in]#

[root@localhost case_in]# sh 02.sh

In put a character:

gletter

[root@localhost case_in]#

[root@localhost case_in]# sh 02.sh

In put a character:

.Punctuation

shell中的 case in 用法相关推荐

  1. linux shell中的case语句用法 以及 case default设置

    case语句使用于需要进行多重分支的应用情况 格式: case $变量名 in模式1)命令序列1;;模式2)命令序列2;; *)默认执行的命令序列 ;; esac     case语句结构特点如下: ...

  2. Linux之shell中的case in语句

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

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

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

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

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

  5. SQL中的CASE WHEN用法

    SQL中Case的使用方法 Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ...

  6. mysql中when用法_Mysql 中的CASE WHEN 用法

    在SELECT语句查询中可以使用CASE WHEN对查询出来的结果,进行一个类似于if else的判断. 具体的用法 1. SELECT a.website_id, b.customer_name, ...

  7. java case switch面试_Java基础篇——Java中switch case语句用法及注意事项面试题9期

    本文主要说一说关于switch case语句用法及注意事项,应对面试官的提问.希望可以帮助那些对switch存在错误和各种细节问题的"码友". switch-case注意事项 sw ...

  8. Shell中冒号的特殊用法

    前言 本文主要是参考了鸟哥写的<鸟哥的Linux私房菜>.因为总是在各种脚本中见到:-的用法而只是了解其大概含义,所以翻阅了相关资料,编写此博文以作记录 Shell中冒号在变量赋值时的各种 ...

  9. shell中sed命令的用法

    sed (stream editor)流编辑器也是linux中的一条命令,在shell中经常需要用到的非交互式修改文件内容的命令.sed处理文本是按行处理,也就是读一行处理一行. sed的命令基本格式 ...

最新文章

  1. 人脸识别争议再起 实际应用利弊几何?
  2. nyoj------203三国志
  3. python处理json_Python处理JSON
  4. Java中有关clone方法的用法
  5. docker 主进程 日志_运维笔记--docker高效查看后台日志
  6. 2020_12-电路理论框架复习思考-基础篇
  7. 我的JavaWeb学习1
  8. lisp如何调用linux头文件,Lisp之 程序的交互执行和非交互执行
  9. Nexpose漏扫使用步骤
  10. mysql数据库原理及应用实训报告_《数据库原理及应用》实验报告.doc
  11. Sklearn 卡方检验
  12. win10系统下搭建FTP服务器(完成文件上传与下载)
  13. Linux自启进程管理工具,Linux进程管理工具--God-详解(1)-入门
  14. Ubuntu系统迁移至固态硬盘(生产环境勿用)
  15. 有一篇文章,共有3行文字,每行有最多80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。
  16. 基于Cortex-M7内核STM32F767NIH6,STM32F767VGT6,STM32F767VIT6嵌入式技术资料
  17. Java多态性的“飘渺之旅”
  18. Vue.js中的生命周期函数
  19. 荣耀Play6T配置怎么样 荣耀Play6T值得买吗
  20. 热点的ap频段哪个快_我告诉你热点的ap频段什么意思

热门文章

  1. 《能源石化交易行业区块链应用白皮书》今天全文发布,可下载!
  2. c语言---刷题01
  3. 《泰坦尼克号》未公映结局曝光
  4. 明天要去阿里巴巴上班了,有点激动哦
  5. 游戏定宣传片制作攻略
  6. linux查看数据积压,对 EC2 Linux 实例上的审计积压错误进行排查
  7. insert sql语句_SQL Insert语句概述
  8. 总结J2EE面向对象
  9. 《计算广告》第二版 读书笔记
  10. 10行代码集2000张美女图,Python爬虫120例,再上征途