while条件语句用于重复测试某个条件,当条件成立时则继续重复执行。
猜数字游戏:
#!/bin/bash
NUM=$(expr $RANDOM % 1000) #echo $RANDOM 随机数(0-32767)
echo "真实数字是多少"
TIME=0
while true
do
read -p "输入猜测的数:" SHU
let TIME++
if [ $SHU -eq $NUM ]
then
echo "猜对了"
echo "你猜了$TIME次"
exit 0 跳出循环
elif [ $SHU -gt $NUM ]
then
echo "大了"
else
echo "小了"
fi
done
case循环
case条件语句可以依据变量的不同取值,分别执行不同的命令动作。
判断输入的字符是什么
#!/bin/bash
read -p "请输入一个字符,并按Enter键确认:" KEY
case "$KEY" in
[a-z]|[A-Z])
echo "您输入的是 字母。"
;;
[0-9])
echo "您输入的是 数字。"
;;
[0-9][0-9])
echo "您输入的是 数字。"
;;
[0-9][0-9][0-9])
echo "您输入的是 数字。"
;;
*)
echo "您输入的是 空格、功能键或其他控制字符。"
esac
组合使用
#!/bin/bash
NUM=$(expr $RANDOM % 1000)
echo "真实数字是多少"
TIME=0
while true
do
read -p "输入猜测的数:" SHU
let TIME++
read -p "请输入一个字符,并按Enter键确认:" KEY
case "$SHU" in
[a-z]|[A-Z])
echo "您输入的是 字母。"
;;
[0-9])
echo "您输入的是 数字。"
;;
[0-9][0-9])
echo "您输入的是 数字。"
;;
[0-9][0-9][0-9])
echo "您输入的是 数字。"
;;
*)
echo "您输入的是 空格、功能键或其他控制字符。"
esac
if [ $SHU -eq $NUM ]
then
echo "猜对了"
echo "你猜了$TIME次"
exit 0 跳出循环
elif [ $SHU -gt $NUM ]
then
echo "大了"
else
echo "小了"
fi
done