格式:在case程序中,可以在条件中使用 | ,表示或的意思
case 变量名 in
value1) ---第一个判断
command
;;
value2) ---第二个判断
command
;;
*) --除此之外
command
;;
esac
#!/bin/bash
read -p "Please input a number: " n ---让用户输入数字,返回值为n
if [ -z "$n" ] ---当为空时
then
echo "Please input a number." --提示请输入值
exit 1 --退出,当用户运行完脚本运行echo $? 的时候会返回1
fi
n1=`echo $n|sed 's/[0-9]//g'` --输出是否为纯数字,如果是数字,则清空,赋值给$n1
if [ -n "$n1" ] --判断$n1是否为空(即$n1不是纯数字)
then
echo "Please input a number." --为空再次提示输入数字
exit 1 --退出
fi
if [ $n -lt 60 ] && [ $n -ge 0 ] ---当数值小于60 且大于等于0 提示tag1
then
tag=1
elif [ $n -ge 60 ] && [ $n -lt 80 ] ---当数值大于等于60并且小于80 提示tag2
then
tag=2
elif [ $n -ge 80 ] && [ $n -lt 90 ] ---当数值大于等于80且小于90 提示tag3
then
tag=3
elif [ $n -ge 90 ] && [ $n -le 100 ] ---当数值大于等于90且小于100 提示tag4
then
tag=4
else
tag=0
fi
case $tag in --当你的tag值为1/2/3/4、的时候执行如下
1)
echo "not ok" ---tag1提示not ok
;;
2)
echo "ok" --tag2提示 ok
;;
3)
echo "ook" -tag3提示 ook
;;
4)
echo "oook" ---tag4提示 oook
;;
*) --除此之外的执行tag=0
echo "The number range is 0-100." --提示重新输入数值范围为0-100
;;
esac
执行结果100
执行结果101:提示不在此范围
执行过程 sh -x case.sh