语法:
case 变量 in
值1)
命令序列 1
;;
值2)
命令序列 2
;;
……
值n)
命令序列 n
;;
esac
case 语句中,用于模式匹配的特殊字符:
* :匹配所有字符串
? :匹配任意单个字符
[…] :定义某个范围内的字符集
| :分割不同的值,表示 “或者”
判断当前时间属于上午、下午还是晚上:
#!/bin/bash
hour = ‘date + %H’
case $hour in
0[1-9] | 1[01])
echo “Good morining”
;;
1[2-7])
echo “Good afternoon”
;;
*)
echo “Good evebing”
;;
esac
根据不同的菜单选择,分别显示当前时间、登录用户和当前工作目录:
#!/bin/bash
echo -e “\n Command MENU\n”
echo “D.Current data and time”
echo “U.Users currently logged in”
echo -e “W.Name of the working directory\n”
echo “Enter D,U or W:”
read answer
echo
case “$answer” in
D | d)
date
;;
U | u)
who
;;
W | w)
pwd
;;
*)
echo “There is no selection:$answer”
;;
esac