题目: 根据从键盘输入的学生成绩,显示相应的成绩标准(such as “failed”“passed”,”medium””good””excellent”)。
最简单的一种方法就是用if表示,但是有些复杂
解法二,case区间 网上查阅的大部份资料是这样的。
case语句结构特点如下: case行尾必须为单词 in 每个模式必须以右括号 ) 结束 双分号 ;; 表示命令序列结束 case语句结构特点如下: 匹配模式中可是使用方括号表示一个连续的范围,如[0-9];使用竖杠符号“|”表示或。 最后的“)”表示默认模式,当使用前面的各种模式均无法匹配该变量时,将执行“)”后的命令序列。
这个资料是正确的,但是不够全面, 我根据这个写出的代码是这样的:
`运行结果: 再多反调试之后我发现
#!/bin/bash read -p "press some key ,then press return :" KEY case $KEY in [0-9]) echo "It's a letter." ;; *) echo "It's function keys?Spacebar or other ksys." esac0-9是可以运行的,因为[ ]表示可以选中其中一个字符,而11是两位数 因此要使用 [ ][ ],中间不用使用连接词, 修改过后:
#!/bin/bash read -p "press some key ,then press return :" KEY case $KEY in [0-9][0-9]) echo "It's a letter." ;; *) echo "It's function keys?Spacebar or other ksys." esac