当前位置:首页 > 服务器技术 > 正文

Linux Shell中的case语句详解(从零开始掌握条件分支利器)

Linux Shell 脚本编程中,case 语句是一种非常实用的条件判断结构,特别适合处理多个固定选项的情况。相比一连串的 if-elif-elsecase 语句更简洁、可读性更强。本文将带你从零开始,全面掌握 case 语句的用法,即使是编程小白也能轻松上手!

Linux Shell中的case语句详解(从零开始掌握条件分支利器) Shell  case语句 Shell脚本教程 Bash编程 第1张

什么是 case 语句?

case 语句用于根据一个变量的值匹配多个预设的模式,并执行对应的操作。它类似于其他编程语言中的 switch 语句。

基本语法

Shell 中 case 语句的基本结构如下:

case $变量 in  模式1)    命令1    ;;  模式2)    命令2    ;;  *)    默认命令    ;;esac  
  • $变量:要被匹配的值(通常是用户输入或脚本参数)
  • 模式:可以是字符串、通配符(如 *?[abc])等
  • ;;:表示当前分支结束
  • *:通配所有未匹配的情况,相当于 else
  • esac:是 case 的倒写,表示整个 case 语句结束

实战示例:菜单选择程序

下面是一个使用 case 语句实现的简单菜单脚本,帮助你理解其实际应用:

#!/bin/bashecho "请选择操作:"echo "1) 查看系统信息"echo "2) 查看磁盘使用情况"echo "3) 退出"read -p "请输入选项 (1/2/3): " choicecase $choice in  1)    echo "正在获取系统信息..."    uname -a    ;;  2)    echo "正在查看磁盘使用情况..."    df -h    ;;  3)    echo "再见!"    exit 0    ;;  *)    echo "无效选项,请输入 1、2 或 3。"    ;;esac  

将上述代码保存为 menu.sh,然后运行:

chmod +x menu.sh./menu.sh

支持通配符的高级用法

Shell 的 case 语句支持通配符匹配,这使得它非常灵活。例如:

read -p "请输入文件扩展名: " extcase $ext in  txt|log)    echo "这是文本日志文件"    ;;  jpg|png|gif)    echo "这是图片文件"    ;;  mp4|avi|mkv)    echo "这是视频文件"    ;;  *)    echo "未知文件类型"    ;;esac  

注意:多个模式可以用竖线 | 分隔,表示“或”的关系。

常见应用场景

  • 处理命令行参数(如 -h--help
  • 构建交互式菜单
  • 根据文件类型执行不同操作
  • 验证用户输入格式

小贴士

  • 每个分支必须以 ;; 结尾,否则会继续执行下一个分支(类似 C 语言的 fall-through,但 Shell 默认不会 fall-through,除非故意省略 ;;
  • 模式匹配是区分大小写的
  • 可以使用 [yY] 来同时匹配大小写 Y

结语

通过本文的学习,你应该已经掌握了 Linux Shellcase 语句的基本用法和实际应用场景。它是 Bash编程 中不可或缺的工具,尤其适合处理多选项逻辑。希望这篇 Shell脚本教程 能帮助你在自动化脚本编写中更高效、更优雅!

如果你觉得有用,不妨动手写几个小脚本练习一下。实践是最好的老师!