【Linux命令-shell】case语句:判断用户输入、数组、石头剪刀布游戏

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

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值