语法结构及特点
特点
检查变量的实际取值
如果与预设的值相匹配,则执行对应的操作
语法结构
case分支的执行流程
case分支相关案例
案例1:判断用户输入
需求
- 使用redhat,fedora控制参数
- 控制参数通过位置变量$1传入
- 当用户输入redhat参数,脚本返回fedora
- 当用户输入fedora参数,脚本返回redhat
- 当用户输入其他参数,则提示错误信息
代码实现
#! /bin/bash
case $1 in
redhat)
echo "fedora";;
fedora)
echo "redhat";;
*) //默认输出脚本用法
echo "用法: $0{redhat|fedora}
esac
案例2:控制nginx服务
需求
- 输入start或者kai 就开启nginx
- 输入stop或STOP或s或guan就关闭nginx
- 输入re或者cq就重启nginx
- 输入cx或者status就查询nginx状态
- 输入其他参数,则提示错误信息
代码实现
#!/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