一、什么是case结构条件句
case语句实际上就相当于一个多分支结构语句。其基本语法:
case "字符串变量" in 值1) 指令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