case 语句是 shell 中流控制的第二种方式,语法如下:  

case $变量 in

    pattern1)

         list1

         ;;                     ---------------------结尾。

    pattern2)

         list2

         ;;

    ... ...

    patternN)

         listN

        ;;

   *)                       --------------------> 如果前面命令没有执行成功那么执行下面这个

        list*

        ;;

esac


命令;;表明流应该跳转到case语句的最后,类似C语言中的break指令。

第一行: 声明case关键字调用case语法, 紧跟的“变量”一般为用户的输入值, in代表从下方的各个模式进行匹配  

第2-4行: 匹配到“pattern1”后进行命令的输出或执行, pattern1: 一般为字符或数值

第11-12行: 当用户输入的字符不存在匹配模式时, 直接执行或打印*)下的命令或语句



实例1:

[root@linux-server script]# vim foo.sh

#!/usr/bin/env bash

case $1 in

       foo)

       echo "bar"

       ;;

       bar)

       echo "foo"

       ;;

       *)

       echo "Usage:$0 '{foo|bar}'"

       ;;

esac

[root@linux-server script]# chmod +x foo.sh

[root@linux-server script]# ./foo.sh bar


练习:建立脚本case.sh,当执行时,要求我们在键盘输入适当的值(one|two|three),当输入正确时并打印,当输入错误 时会提示你,应该输入正确的值。