• 格式
代码语言:javascript复制case 变量名 in
value1)
command
;;
value2)
command
;;
*)
commond
;;
esac
如果case中的某个value是一样的,我们可以这样写:
代码语言:javascript复制在case程序中,可以在条件中使用 |,表示或的意思,
比如
2|3)
command
;;
来个脚本练习下:
此脚本用来判断一个输入一个学生的成绩来查询等级如何。
在练习之前我们一定要想的全面些!
- 假如用户输入的不是数字
- 假如用户没有任何输入
- 假如输入了错的数字
#!/bin/bash
read -p "Please input a number: " n //让用户输入一个数字
if [ -z "$n" ] //判断用户有没有输入
then
echo "Please input a number."
exit 1
fi
n1=`echo $n|sed 's/[0-9]//g'` //检查用户输入的是不是全部是数字
if [ -n "$n1" ]
then
echo "Please just input a number, without any other words."
exit 1
fi
if [ $n -lt 60 ] && [ $n -ge 0 ] //经过如上的筛选,我们来判断输入数字属于哪个范围,并且把值交给tag
then
tag=1
elif [ $n -ge 60 ] && [ $n -lt 80 ]
then
tag=2
elif [ $n -ge 80 ] && [ $n -lt 90 ]
then
tag=3
elif [ $n -ge 90 ] && [ $n -le 100 ]
then
tag=4
else
tag=0
fi
case $tag in //根据如上得到的值,进行判断
1)
echo "you didn't pass the exam!"
;;
2)
echo "good!"
;;
3)
echo "very good!"
;;
4)
echo "perfect!!!"
;;
*)
echo "Pls input a number range 0-100."
;;
esac
我个人比较喜欢if语句,建议大家也一定要学好这个,毕竟有时候还是蛮好用的。