Shell之case结构条件句

一、什么是case结构条件句

case语句实际上就相当于一个多分支结构语句。其基本语法:

case "字符串变量" in1) 指令1...
        ;;
    值2) 指令2...
        ;;
    值3) 指令3...
        ;;
esac

 根据用户输入的数字,判断输出哪个数字,比如,用户输入1,就输出1;输入2,输出2;输入其它的数字,返回输出输出错误。

#!/bin/sh
read -p "please input number:" number
case "$number" in
   1)
      echo "this number is 1"
   ;;
   2)
      echo "this number is 2"
   ;;
   [3-9])      
      echo "this number is greater than 3 less than 9"
   ;;  
    *)
      echo "input error" 
   ;;
esac

二、综合实例

(一)服务菜单

 通过case语句打印一个服务菜单:

1、MySQL
2、Apache
3、Web

当用户选择的是什么,打印它的选择项内容。

#!/bin/sh

menu(){

cat << END
1、MySQL
2、Apache
3、Web
END
}
menu
read -p "please select service number:" number
case "$number" in
   1)
   echo "MySQL"
   ;;
   2)   
   echo "Apache"
   ;;
   3)   
   echo "Web"
   ;;
   *)
   echo "please select number"
   ;;
esac

显然,上面是每次都是单次执行,如果不中断的选择就需要加上循环:

#!/bin/sh

menu(){

cat << END
1、MySQL
2、Apache
3、Web
4、Exit
END
}
while true
do
menu
read -p "please select service number:" number
case "$number" in
   1)
   echo "MySQL"
   ;;
   2)   
   echo "Apache"
   ;;
   3)   
   echo "Web"
   ;;
   4)
   exit 0
   ;;
   *)
   echo "please select number"
   ;;
esac
done    

 

作者:iveBoy
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/shenjianping/p/14364475.html