shell脚本系列:case语句详解

格式

case expression in
    pattern1)
        statement1
        ;;
    pattern2)
        statement2
        ;;
    pattern3)
        statement3
        ;;
    ……
    *)
        statementn
esac

示例一

#!/bin/bash

printf "Input integer number: "
read num

case $num in
    1)
        echo "Monday"
        ;;
    2)
        echo "Tuesday"
        ;;
    3)
        echo "Wednesday"
        ;;
    4)
        echo "Thursday"
        ;;
    5)
        echo "Friday"
        ;;
    6)
        echo "Saturday"
        ;;
    7)
        echo "Sunday"
        ;;
    *)
        echo "error"
esac

case in 和正则表达式

格式 说明
* 表示任意字符串。
abc 表示 a、b、c 三个字符中的任意一个。比如,[15ZH] 表示 1、5、Z、H 四个字符中的任意一个。
m-n 表示从 m 到 n 的任意一个字符。比如,[0-9] 表示任意一个数字,[0-9a-zA-Z] 表示字母或数字。
| 表示多重选择,类似逻辑运算中的或运算。比如,abc | xyz 表示匹配字符串 "abc" 或者 "xyz"。

示例二

#!/bin/bash

printf "Input a character: "
read -n 1 char

case $char in
    [a-zA-Z])
        printf "
letter
"
        ;;
    [0-9])
        printf "
Digit
"
        ;;
    [,.?!])
        printf "
Punctuation
"
        ;;
    *)
        printf "
error
"
esac
原文地址:https://www.cnblogs.com/iuskye/p/shell-case.html