case分支结构

语法结构及特点

特点

检查变量的实际取值
如果与预设的值相匹配,则执行对应的操作

语法结构

语法结构

case分支的执行流程

case分支的执行流程

case分支相关案例

案例1:判断用户输入

需求

  1. 使用redhat,fedora控制参数
  2. 控制参数通过位置变量$1传入
  3. 当用户输入redhat参数,脚本返回fedora
  4. 当用户输入fedora参数,脚本返回redhat
  5. 当用户输入其他参数,则提示错误信息
    代码实现
#! /bin/bash
case $1 in
redhat)
    echo "fedora";;
fedora)
    echo "redhat";;
*) //默认输出脚本用法
    echo "用法: $0{redhat|fedora}
esac

案例2:控制nginx服务

需求

  1. 输入start或者kai 就开启nginx
  2. 输入stop或STOP或s或guan就关闭nginx
  3. 输入re或者cq就重启nginx
  4. 输入cx或者status就查询nginx状态
  5. 输入其他参数,则提示错误信息
    代码实现
#!/bin/bash
case $1 in
start|kai)
/usr/local/nginx/sbin/nginx;;
stop|STOP|s|guan)   
/usr/local/nginx/sbin/nginx -s stop;;
re|cq)
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx;;
cx|status)
netstat -ntulp | grep -q nginx    //查询nginx,但不输出结果 -q选项是保持沉默
[ $? -eq 0 ] && echo "nginx正在运行" || echo "nginx未开启";;    //判断,如果上述任务成功,说明nginx服务开启,就显示"nginx正在运行",如果上述任务失败,说名nginx服务关闭,就显示"nginx未开启"
*)
echo "请输入start或stop"
esac
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容