1、case 语句
检查、判断变量的取值,效果类似于多分支的if语句,如果与预设的值相匹配,则执行对应的操作,命令序列最后必须以分号结尾。
case 变量 in
模式1)
命令序列1;;
模式2)
命令序列2;;
.................
*)
命令序列3;;
easc
2、判断用户输入
判断用户的输入,输入redhat返回fedora,输入fedora就返回redhat,输入其他的返回用法。
case1.sh文件的内容如下:
#!/bin/bash
read -p "请输入redhat|fedora:" key
case $key in
rehat)
echo "fedora.";;
fedora)
echo "redhat.";;
*)
echo "必须输入fedora或redhat.";;
esac
case2.sh文件内容如下:
#!/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
3、数组
数组也是一个变量,是一个有点特殊的变量
存储多个数据的集合就是数组,
例如 test=(11 22 33)
${test[0]}
4、石头剪刀布游戏
stone.sh文件内容如下:
#!/bin/bash
game=(石头 剪刀 布)
num=$[ RANDOM%3 ]
computer=${game[$num]}
#通过随机数获取计算机的出拳
#出拳的可能性保存在一个数组中:game[0],game[1],game[2]
echo "请根据下列提示选择您的出拳手姿"
echo "1、石头"
echo "2、剪刀"
echo "3、布"
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 0 ]; then
echo "计算机赢"
elif [ $num -eq 1 ]; then
echo "平局"
else
echo "你赢"
fi;;
3)if [ $num -eq 0 ]; then
echo "你赢"
elif [ $num -eq 1 ]; then
echo "计算机赢"
else
echo "平局"
fi;;
*)
echo "必须输入1-3的数字"
esac