linux shell

关注公众号 jb51net

关闭
首页 > 脚本专栏 > linux shell > shell case

shell中case的使用

作者:静听山水

case语句是基于值的多分支选择结构,通过匹配表达式的值来执行相应的代码块,它的基本结构包括case关键字、待匹配的表达式、模式、代码块、默认分支(*)和结束关键字esac,感兴趣的可以了解一下

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

基本结构

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

详细解释

示例

示例 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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文