case用法

case的语法格式如下:
case var in
exp-1) 命令体1 ;;
exp-2) 命令体2 ;;
...
*) 命令体 ;;
shell通过计算变量var的值,将其结果依次和运算式exp-1, exp-2等进行比较,直到找到一个匹配的运算式为止。如果找到了匹配项,则执行它下面的命令直到遇到一对分号(;;)为止。


平时较小用case语句,偶尔用到,所以记录如下:
1> var可以是数字,也可以是字符串,只是在下面的判断运算式exp里区分就行
2> 判断运算式exp可以只是一个数字,或一字符串,也可以是一个运算式如$((a+b)) 其中a,b在上面已赋值,也可以是一个正则表达式
3> *即为当上面的判断运算式都匹配失败时才会执行它的命令体, 该项为可选
4> 一对分号可以跟在命令体最后一语句后,也可以写在命令体结束后的下一空行.作用相同

正则表达式格式
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

====================================

#!/bin/bash
read -p "press some key ,then press return :" KEY
case $KEY in
[a-z]|[A-Z])
echo "It's a letter."
;;
[0-9])
echo "It's a digit."
;;
*)
echo "It's function keys、Spacebar or other ksys."
esac

原文地址:https://www.cnblogs.com/jinxf/p/9358771.html