case语法格式
- 检查、判断变量的取值
- 效果类似于多分支的if语句
- 如果与预设的值相匹配,则执行相应的操作
- 命令序列最后必须以分号结尾
case 变量 in
模式1)
命令序列1;;
模式2)
命令序列2;;
... ...
*)
默认命令序列
esac
case范例
#!/bin/bash
read -p "请输入redhat|fedora:" key
case $key in
redhat)
echo "fedora.";;
fedora)
echo "redhat.";;
*)
echo "必须输入redhat或fedora."
esac
#!/bin/bash
read -p "Are you sure?[y/n]:" sure
case $sure in
y|Y|yes|YES)
echo "you enter $sure, OK";;
n|N|no|NO)
echo "you enter $sure,OVER";;
*)
echo "error";;
esac
数组
- 数组也是一个变量,是一个有点特殊的变量
- 存储多个数据的集合就是数组
test=(11 22 33)
echo ${test[0]}
11
echo ${test[1]}
22
#!/bin/bash
game=(stone scissor cloth)
num=$[RANDOM%3]
computer=${game[$num]}
#通过随机数获取计算机的出拳
#出拳的可能性保存在一个数组中:game[0],game[1],game[2]
echo "请根据下列提示选择您的出拳手势"
echo "1.stone 石头"
echo "2.scissor 剪刀"
echo "3.cloth 布"
read -p "请选择1-3:" person
case $person in
1)
if [ $num -eq 0 ];then
echo "平局"
elif [ $num -eq 1 ];then
echo "你赢"
else
echo "计算机赢"
fi;;
2)
if [ $num -eq 1 ];then
echo "平局"
elif [ $num -eq 2 ];then
echo "你赢"
else
echo "计算机赢"
fi;;
3)
if [ $num -eq 2 ];then
echo "平局"
elif [ $num -eq 0 ];then
echo "你赢"
else
echo "计算机赢"
fi;;
*)
echo "输入非法,OVER"
esac
小结
网友评论