shell中的case语句:

可以把变量的内容与多个模板进行匹配,再根据成功匹配的模板去决定应该执行哪部分代码。

使用格式:
case 匹配母板 in
模板1 [ | 模板2 ] … ) 语句组 ;;
模板3 [ | 模板4 ] … ) 语句组 ;;
esac
case语句的匹配是从上往下地匹配顺序。因此,case语句编写的原则是从上往下,模板从特殊到普通。在C语言里,case语句中有default模板,而在shell程序设计中,可能将模板写成*,就可以完成相同的功能。

注意: 1、*) 相当于其他语言中的default。
        2、除了*)模式,各个分支中;;是必须的,;;相当于其他语言中的break
        3、 | 分割多个模式,相当于or

下面是一些例子:

#!/bin/bash
##filename:what-lang-do-you-like.sh
echo "What is your preferred scripting language?"
read -p "1)bash 2)perl 3)python 4)ruby:"   lang
case $lang in1)      echo "You selected bash"   ;;2)      echo "You selected perl"   ;;3)      echo "You selected python" ;;4)      echo "You selected ruby"   ;;*)      echo "I do not know!"      ;;
esac

#!/bin/bash
##filename:which-pi-do-you-like.sh
echo "Which is your preferred PI?"
read -p "Aruino,pcDuino,RaspberryPi,Cubieboard,OrangePi,BananaPi:  "  pi
case $pi in[Aa]*|[Pp]*)            echo "You selected Arduino/pcDuino."  ;;[Bb]*|[Cc]*|[Oo]*)      echo "You selected Cubieboard/Banana Pi/Orange Pi."  ;;[Rr]*)                  echo "You selected Raspberry Pi."  ;;*)                      echo "I don't know which PI you like."  ;;
esac

#!/bin/bash
FRUIT=$1         #注意没有空格
if [ -z "$1" ]   #中括号跟 -z 要有空格
then
echo "没有在第一个参数输入水果"
else
case "$FRUIT" in
apple|APPLE) echo "THE FRUIT is apple";;
banana|BANANA) echo "THE FRULT is banana";;
#可以使用*)来表示默认选项,注意最后要用两个分号来结尾
*) echo "输入的是不是我要的水果啊?";;
esac
fi

不知道为什么ubuntu上面有些demo运行效果和CentOS上运行总是有些差别,下次网上仔细找找有没什么相关的说明。

case语句使用举例相关推荐

  1. select case语句举例_图解Go select语句原理

    Go 的select语句是一种仅能用于channl发送和接收消息的专用语句,此语句运行期间是阻塞的:当select中没有case语句的时候,会阻塞当前的groutine.所以,有人也会说select是 ...

  2. shell之case和循环语句(case语句的格式与举例)(for循环,while循环until循环语句的详解和continue,break解释, 九九乘法口诀表 ,等腰三角形)

    文章目录 shell编程之case语句与循环语句(for,while) case多分支语句 case语句的实例 使用for循环语句 for语句实例 用循环语句输出1-10的数字的五种办法 计算偶数/奇 ...

  3. php中的select case语句吗,VBS教程:VBScript 语句-Select Case 语句

    Select Case 语句 根据表达式的值执行几组语句之一. Select Case testexpression [Case expressionlist-n [statements-n]] . ...

  4. python中case的用法_用 Python 实现简单的 switch/case 语句

    在Python中是没有Switch / Case语句的,很多人认为这种语句不够优雅灵活,在Python中用字典来处理多条件匹配问题字典会更简单高效,对于有一定经验的Python玩家不得不承认,的确如此 ...

  5. C语言switch中break的作用,C语言中switch...case语句中break的重要性

    在C语言中switch...case语句是经常用到的,下面我介绍一下在使用该语句时候需要注意的一个细节问题.话不多说,直接举例子: 例子1: switch(fruit) { case 1:printf ...

  6. c语言 case break,C语言中switch...case语句中break的重要性

    在C语言中switch...case语句是经常用到的,下面我介绍一下在使用该语句时候需要注意的一个细节问题.话不多说,直接举例子: 例子1: switch(fruit) { case 1:printf ...

  7. Shell编程之case语句与函数

    一.case语句 1.语法结构 2.应用案例 1)脚本传不同值做不同事 2)根据用户需求选择做事 二.函数 1.什么是函数? 2.如何定义函数? 3.函数如何调用? 1)当前命令行调用 2)定义到用户 ...

  8. shell脚本求和_【零基础学云计算】Shell编程之case语句与循环语句

    case多分支语句 循环语句 for循环语句 while循环语句 untli循环语句 Shell函数 Shell数组 case语句的结构 针对变量的不同取值,分别执行不同的命令序列 case 变量值 ...

  9. C语言case次数有限制吗,用switch...case语句统计数字、空格和其他字符出现的次数...

    //用switch...case语句统计数字.空格和其他字符出现的次数 //转自K&R #include int main(void) { int c, i, nwhite, nother, ...

最新文章

  1. Docker(九):Docker实战 安装 Ubuntu
  2. matlab ia模块,MathWorks发布MATLAB和SimulinkR2020a版本,为工程师和科学家提供更多AI功能...
  3. 物联网可应用于十大行业嘛?
  4. CentOS7.0 安装nginx-1.9.10
  5. C#/java 求最大公约数和最小公倍数
  6. 前端文档汇总(觉得对您有用的话,别忘了给点个赞哦 ^_^ !)
  7. tf.matmul()和tf.multipy()的区别
  8. 如何将HTML与win10桌面壁纸,如何解决win10桌面背景不显示
  9. (三)碳排放如何计算
  10. Cesium离线地图极简教程
  11. 计算机是人类的好伴侣 作文,有电脑真好作文
  12. 十大排序算法笔记(C语言)(一)选择排序、冒泡排序、插入排序、希尔排序、快速排序
  13. nginx: worker process is shutting down
  14. docker 构建推送到阿里云仓库失败
  15. 0.91寸 SSD1306 OLED介绍(二) --- 命令介绍
  16. 关于一粒云盘使用心得
  17. 支付宝支付-常用支付API详解(查询、退款、提现等)(转)
  18. 如何下载网页上的音乐?不用注册!不用会员!不用播放器!
  19. 几款Golang IDE对比
  20. Windows 10 无法访问某文件夹(如C:\Documents and Settings)。拒绝访问。解决方法

热门文章

  1. 美国计算机科学专业申请条件,美国CS计算机科学专业申请条件有哪些?
  2. 北京java研发平均工资_各地java开发工程师平均工资 北京高级java开发工程师工资2万多...
  3. 杭州都有哪些靠谱点的互联网公司?
  4. 高鸿业微观经济学第8版笔记和课后答案
  5. 在树莓派(Linux)上使用FTDI的usb转串口芯片ft232两种驱动方式(VCP和D2xx)
  6. 推荐一款高颜值网易云播放器
  7. 概率论一:样本空间1
  8. mdio phy(bcm5482)访问
  9. SLIC算法理解(仅为个人笔记)
  10. Matlab数字图像的傅里叶变换(FFT)