shell编程case用法

文章目录

  • 一、语法
  • 二、例子

一、语法

case "$变量名" in
  值1)
    命令1
    ;;
  值2)
    命令2
    ;;
  *)
    默认命令
    ;;
esac

二、例子

1.嵌套 case 语句,可以根据用户输入的服务名称和操作类型执行相应的命令

#!/bin/bash

# 显示服务选项
echo "请选择服务类型:"
echo "1. Web服务器 (nginx)"
echo "2. 数据库 (mysql)"
echo "3. 文件服务 (samba)"
read -p "输入服务编号: " service_choice

# 第一层case:判断服务类型
case "$service_choice" in
  1)
    service_name="nginx"
    ;;
  2)
    service_name="mysql"
    ;;
  3)
    service_name="smbd"
    ;;
  *)
    echo "无效的服务选择"
    exit 1
    ;;
esac

# 显示操作选项
echo -e "\n请选择操作类型:"
echo "1. 启动服务"
echo "2. 重启服务"
echo "3. 暂停服务"
echo "4. 查看状态"
read -p "输入操作编号: " action_choice

# 第二层case:判断操作类型
case "$action_choice" in
  1)
    action="start"
    ;;
  2)
    action="restart"
    ;;
  3)
    action="stop"
    ;;
  4)
    action="status"
    ;;
  *)
    echo "无效的操作选择"
    exit 1
    ;;
esac

# 执行服务管理命令
echo -e "\n执行命令: sudo systemctl $action $service_name"
sudo systemctl $action $service_name

# 显示结果
echo -e "\n$service_name 服务当前状态:"
sudo systemctl is-active $service_name --no-pager

你可能感兴趣的:(shell编程case用法)