shell脚本学习之case用法及实例

时间:2021-03-29 21:39:57

case语句和判断语句[if...elif...else]功能类似;
当在逻辑判断比较简单的情况下,比后者的代码量要少许多.
case用法,用变量来匹配某值,如果匹配成功则执行它下面的命令,直到 ;;为止

case语句结构特点如下:

case行尾必须为单词 in 每个模式必须以右括号 ) 结束

双分号 ;; 表示命令序列结束
case语句结构特点如下:
匹配模式中可是使用方括号表示一个连续的范围,如[0-9];使用竖杠符号“|”表示或。
最后的“*)”表示默认模式,当使用前面的各种模式均无法匹配该变量时,将执行“*)”后的命令序列。

 

语法:

case "变量" in

    "变量1")

        ...

        ;; #输出两个分号

    "变量2")

        ...

      ;; #输出两个分号

    "变量3")

        ...

       ;; #输出两个分号

    *)

         ...

       ;; #输出两个分号

esac

实例1、输入不同数字,得到不同结果(多个条件可以用"|"分隔开)

shell脚本学习之case用法及实例shell脚本学习之case用法及实例

 

 实例2、由用户从键盘输入一个字符,并判断该字符是否为字母、数字或者其他字符, 并输出相应的提示信息。

#!/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