大数据兼云计算(王明龙)讲师-LINUX-DAY22-SHELL-流程控制CASE

本文详细介绍了 Bash shell 脚本中的 case 语句用法,包括语法格式、命令序列、匹配模式等,并提供了多个实用案例进行演示。

**

CASE分支

**


Case多分支位置语句

语法:
-----------------------------------------------------------
case 变量名 in
赋值 )
     command1
     command2
     ......
     ;;
赋值)
     command1
     command2
     ......
     ;;
赋值)
     command1
     command2
     ......
     ;;
*)
     command1
     command2
     ......
     ;;
esac



格式:
--------------------------------------------------------------------
#!/bin/bash
read -p "提示信息:" 变量名
case $变量名 in
[a-z]|[A-Z] )   模式1
          echo "wang."  匹配值1
          ;;           模式结束
[1-9] )          模式2
          echo "ming."  匹配值2
          ;;           模式结束  
wang|long)   模式3
          echo “wml”  匹配值3
          ;;
*)               默认模式
          echo "wang, ming,long"  匹配值
esac            结束


解析:
------------------------------------------------------------------------------------------------------------------------------------
case   :为变量匹配值
in       :写入
)      :模式结束
[0-9]) :表示模式中,可以输入09,会显示相应值
A|B)   :表示模式中,可以输入A或B,才会显示相应值
;;       :表示命令序列的结束
*)    :表示默认模式,只要不输入上几个模式所规定的范围,任何字符都可以输入找到匹配值回显
esac   :表示结束匹配



举例:
-----------------------------------------------------------
[root@node1 ~]# vim a.sh
#!/bin/bash
case $1 in
a)
    cat /etc/passwd | grep ^root ;;
b)
    ls /var/log/ ;;
c)
    systemctl status  iptables.service ;;
*)
    echo "this is no" ;;
esac


[root@node1 ~]# cat hgn.sh 
#!/bin/bash
read -p "please input a|b|c|d|e :  " lc
case $lc in
a)
   df -h
   ;;
b)
   free -m
   ;;
c)
   ifconfig
   ;;
d)
   ps -ef
   ;;
e)
   cat /etc/redhat-release
   ;;
*)
   echo "现在花姑娘好开放啊!!!"
   ;;
esac



举例
[root@localhost shell]# vim b.sh 
--------------------------------------------------
#!/bin/bash
case $1 in
[a-z]|[A-Z])
   cat /etc/passwd | grep root;;
[1-9])
   ls /var/log;;
wang|long)
   touch a{1..2};;
*)
   echo "yao shu ru can shu";;
esac
--------------------------------------------------
[root@localhost shell]# chmod +x b.sh
[root@localhost shell]# ./b.sh aa
yao shu ru can shu

[root@localhost shell]# ./b.sh a
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

[root@localhost shell]# ./b.sh 1
anaconda       libvirt            spooler
audit          maillog            spooler-20170807
boot.log       maillog-20170807   sssd
btmp           messages           tallylog
chrony         messages-20170807  tuned
cron           ntpstats           vmware-vmsvc.log
cron-20170807  pluto              vmware-vmusr.log
cups           ppp                wpa_supplicant.log
dmesg          qemu-ga            wtmp
dmesg.old      rhsm               Xorg.0.log
firewalld      sa                 Xorg.0.log.old
gdm            samba              Xorg.9.log
glusterfs      secure             yum.log
httpd          secure-20170807
lastlog        speech-dispatcher

[root@localhost shell]# ./b.sh wang
[root@localhost shell]# ls
a1  a2  a.sh  b.sh  wml.txt
[root@localhost shell]# 



举例:
[root@localhost shell]# vim b.sh
--------------------------------------------------------
#!/bin/bash
read -p "yang xiao meng bi mei: " yx
case $yx in
[a-z]|[A-Z])
   cat /etc/passwd | grep root;;
[1-9])
   ls /var/log;;
wang|long)
   touch a{1..2};;
*)
   echo "yao shu ru can shu";;
esac
--------------------------------------------------------
[root@localhost shell]# ./b.sh 
yang xiao meng bi mei: m
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost shell]# 
打开链接下载源码: https://pan.quark.cn/s/e18529987bb9 ### ETS中文教程:KNX施耐德智能家居 #### 知识点一:ETS软件概述与启动 ETS(Engineering Tool Software)是由施耐德电气研发的一款专业设计工具,其核心功能在于构建和配置基于KNX标准的智能家居及楼宇自动化系统。KNX代表一种国际公认的开放式标准,该标准在楼宇自动化领域得到广泛应用,其目的是实现不同品牌设备之间的互联互通。 **软件启动方法**:ETS软件可以通过双击其图标来启动,或者从开始菜单中选择“File”->“New Project”,亦或直接使用Ctrl+N快捷键来启动该软件。 #### 知识点二:工程项目创建 在启动新的工程项目时,需要遵循以下流程: 1. **项目命名**:推荐使用数字与字母的组合来命名项目,例如“Officebuildings”,这样的命名方式有助于日后的管理和识别。 2. **构建建筑物模型**:在“Buildings/Functions”部分添加建筑物,自定义其名称(例如“mg”),并确认创建操作。 3. **添加房间**:针对每一个建筑物,可以进一步添加房间,同样地,为房间自定义名称(如“1F”),以此来构建完整的建筑模型。 #### 知识点三:设备加载与配置 设备加载是ETS软件中的核心环节,其作用在于将实际的智能设备(包括开关、传感器等)整合到项目中: 1. **设备加载过程**:在目标房间处进行右键点击,选择“Add Devices”,随后通过“Product Finder”对话框选择合适的制造商和产品系列,以此来加载所需的设备类型。 2. **地址分配**:在设备加载完成后,应手动为其分配独...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT灵魂摆渡者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值