第二节:case语句

流程控制之case语句

一 语法

case 变量 in
模式1)
    命令序列1
    ;;
模式2)
    命令序列2
    ;;
模式3)
    命令序列3
    ;;
*)
    无匹配后命令序列
esac

注意

case语句只支持shell通配符,例如:*表示任意字符串,?表示任意字符,中括号表示字符集如[a-z]表示一个小写字母
如果要处理正则表达式则需要使用用if [[ 字符串 =~ "正则" ]]这种形式

二 案例

案例1

#!/bin/bash
read -p "username: " -t 5 username
echo
if [ -z $username ];then
    username="default"
fi

case $username in
root)
    echo "管理员用户"
    ;;
egon)
    echo "普通用户"
    ;;
default)
    echo "默认用户"
    ;;
*)
    echo "其他用户"
esac

案例2:

#!/bin/bash

read -p ">>>: " BOOLEAN
case $BOOLEAN in
    [yY][eE][sS])
    echo 'Thanks' $BOOLEAN
    ;;
    [yY]|[nN])
    echo 'Thanks' $BOOLEAN
    ;;
    'T'|'F')
    echo 'Thanks' $BOOLEAN
    ;;
    [Tt]ure|[Ff]alse)
    echo 'Thanks' $BOOLEAN
    ;;
    *)
    exit 1
    ;;
esac

案例3:编写nginx启动脚本

联系管理员微信tutu19192010,注册账号

上一篇
下一篇
Copyright © 2022 Egon的技术星球 egonlin.com 版权所有 帮助IT小伙伴学到真正的技术