while 条件循环语句是一种让脚本根据某些条件来重复执行命令的语句,它的循环结构往往在执行前并不确定最终执行的次数,完全不同于 for 循环语句中有目标、有范围的使用场景。 while 循环语句通过判断条件测试的真假来决定是否继续执行命令,若条件为真就继续执行,为假就结束循环。
这里我们构建一个猜数字游戏的实例来了解while命令以及相关循环的用法。
猜数字游戏想必大家不陌生,由一个人作为裁判,选择一个数字,先指定大致范围,由众人猜测,根据猜测给出“高”或者“低”的评价,然后缩小范围,最后猜中的人有特别的“奖励”。
这里先指定大致的范围为0-999,脚本如下:
#!/usr/bin/env bash
# While usage: guess number
NUMBER=$(expr $RANDOM % 1000 )
TIMES=0
echo "The number is between 0-999, please guess it."
while true
do
read -p "Please input the number: " INT
let TIMES++
if [ $INT -eq $NUMBER ]; then
echo "You are right! The number is $NUMBER."
echo "You guess $TIMES times."
exit 0
elif [ $INT -gt $NUMBER ]; then
echo "Too high... Please