当前位置: 代码网 > 服务器>服务器>Linux > shell中case的使用

shell中case的使用

2024年11月25日 Linux 我要评论
case语句用于根据某个表达式的值执行不同的代码块。基本结构case 表达式 in 模式1) 代码块1 ;; 模式2) 代码块2 ;

case 语句用于根据某个表达式的值执行不同的代码块。

基本结构

case 表达式 in
    模式1)
        代码块1
        ;;
    模式2)
        代码块2
        ;;
    ...
    *)
        默认代码块
        ;;
esac

详细解释

  • case 表达式 in

    • case 关键字开始一个 case 语句。
    • 表达式 是要匹配的值,可以是一个变量或一个固定的值。
    • in 关键字表示模式列表的开始。
  • 模式

    • 每个模式后面必须跟一个右括号 ),以标记该模式的结束。
    • 模式可以是单个值,也可以是多个值用 | 分隔,表示多个值都可以匹配同一个代码块。
  • 代码块

    • 每个模式对应的代码块是一系列命令,这些命令在匹配成功时会被执行。
    • 代码块以 ;; 结束,表示该分支的结束。
  • *)

    • *) 是默认分支,用于处理所有不匹配前面任何模式的情况。
    • 默认分支也是可选的,但通常建议包含默认分支以处理意外情况。
  • esac

    • esac 关键字结束整个 case 语句。

示例

示例 1:基本用法

#!/bin/bash

# 获取用户输入
read -p "请输入一个数字 (1-7): " num

# 根据输入的数字输出相应的星期几
case $num in
    1)
        echo "星期一"
        ;;
    2)
        echo "星期二"
        ;;
    3)
        echo "星期三"
        ;;
    4)
        echo "星期四"
        ;;
    5)
        echo "星期五"
        ;;
    6)
        echo "星期六"
        ;;
    7)
        echo "星期日"
        ;;
    *)
        echo "无效的输入"
        ;;
esac

示例 2:多值匹配

#!/bin/bash

# 获取用户输入
read -p "请输入一个字母 (a-z): " letter

# 根据输入的字母输出相应的信息
case $letter in
    a|e|i|o|u)
        echo "这是一个元音字母"
        ;;
    b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|w|x|y|z)
        echo "这是一个辅音字母"
        ;;
    *)
        echo "无效的输入"
        ;;
esac

示例 3:范围匹配

#!/bin/bash

# 获取用户输入
read -p "请输入一个数字 (1-100): " num

# 根据输入的数字输出相应的范围
case $num in
    [1-9])
        echo "数字在 1 到 9 之间"
        ;;
    [1-9][0-9])
        echo "数字在 10 到 99 之间"
        ;;
    100)
        echo "数字是 100"
        ;;
    *)
        echo "无效的输入"
        ;;
esac

特殊用法

  • 通配符

    • 可以使用通配符 * 和 ? 进行模糊匹配。
    • * 匹配任意长度的任意字符。
    • ? 匹配单个任意字符。
  • 复合模式

    • 可以使用括号 () 包含多个模式,形成复合模式。

示例 4:通配符匹配

#!/bin/bash

# 获取用户输入
read -p "请输入一个文件名: " filename

# 根据输入的文件名输出相应的信息
case $filename in
    *.txt)
        echo "这是一个文本文件"
        ;;
    *.jpg|*.jpeg|*.png)
        echo "这是一个图片文件"
        ;;
    *)
        echo "未知类型的文件"
        ;;
esac

总结

case 语句是一种强大的条件控制结构,适用于多种场景,特别是当需要根据多个可能的值执行不同操作时。通过合理使用模式匹配和默认分支,可以编写出简洁且易于维护的脚本。

到此这篇关于shell中case的使用的文章就介绍到这了,更多相关shell case内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com