条件判断: case语句
在shell编程中,对于多分支判断,用if 虽然也可以实现,但有些时候,写起来很麻烦,也不容易代码理解。这个时候,可以考虑case。
case 变量引用 in
PAT1)
分支1
;;
PAT2)
分支2
;;
…
*)
默认分支
;;
esac
case语句结构特点如下:
case行尾必须为单词“in”,每一个模式必须以右括号“)”结束。
双分号“;;”表示命令序列结束。
匹配模式中可是使用方括号表示一个连续的范围,如[0-9];使用竖杠符号“|”表示或。
“|”分割多个模式,相当于or
最后的“*)”表示默认模式,当使用前面的各种模式均无法匹配该变量时,将执行“*)”后的命令序列。
脚本代码
[root@localhost bin]# cat chatype.sh
#!/bin/bash
# Description: Determine the type of input character
read -p "Please enter a character: " char
case $char in
[A-Z])
echo "Input is capital letters."
;;
[a-z])
echo "Input is lowercase letter."
;;
[0-9])
echo "Input is digital."
;;
*)
echo "Input is other char."
;;
esac
执行结果
[root@localhost bin]# chatype.sh
Please enter a character: a
Input is lowercase letter.
[root@localhost bin]# chatype.sh
Please enter a character: N
Input is capital letters.
[root@localhost bin]# chatype.sh
Please enter a character: 3
Input is digital.
[root@localhost bin]# chatype.sh
Please enter a character: %
Input is other char.
[root@localhost bin]# chatype.sh
Please enter a character: !
Input is other char.
原创文章,作者:cyh5217,如若转载,请注明出处:http://www.178linux.com/36036