#!/bin/bash
# 学习目标:掌握最基本的if条件判断语法
# 知识点:变量定义、用户输入、单分支if语句
number=8 # 设置要猜的数字
echo "Random number is $number" # 显示答案(调试用)
echo "Input a number in 1-10" # 提示用户输入
read guess # 读取用户输入
# 单分支if语句:只有条件成立时才执行
if [[ $guess -eq $number ]] # 判断是否相等
then
echo "You are right!" # 猜对时的反馈
fi
2.双分支
bash复制代码
#!/bin/bash
# 学习目标:掌握if-else双分支结构
# 知识点:双分支判断、条件不成立时的处理
number=9
echo "Random number is $number"
echo "Input a number in 1-10"
read guess
# 双分支if语句:条件成立执行then,不成立执行else
if [[ $guess -eq $number ]]
then
echo "You are right!" # 猜对时的反馈
else
echo "You are wrong!" # 猜错时的反馈(新增功能)
fi
二、增加比大小(if多分支)
bash复制代码
#!/bin/bash
# 学习目标:掌握if-elif-else多分支结构
# 知识点:多条件判断、比较运算符(-lt小于, -gt大于)、elif用法
number=9
echo "Random number is $number"
echo "Input a number in 1-10"
read guess
# 多分支if语句:提供更详细的反馈
if [[ $guess -eq $number ]];then
echo "You are right!"
elif [[ $guess -lt $number ]];then # 新增:判断是否小于
echo "Your reply is smaller than the answer." # 提示太小
else # 既不等于也不小于,那就是大于
echo "Your reply is bigger than the answer." # 提示太大
fi
三、多次猜测(循环)
1.基础多次猜测(while循环)
bash复制代码
#!/bin/bash
# 学习目标:掌握while循环实现重复猜测
# 知识点:while循环、break退出循环、continue继续循环、嵌套if语句
number=9
echo "Random number is $number"
while true # 无限循环,直到break退出
do
echo "Input a number in 1-10"
read guess
if [[ $guess -eq $number ]];then
echo "You are right! Continue?(y/n):"
read con
if [[ $con = "y" ]];then
continue # 继续下一轮游戏
else
break # 退出循环,结束游戏
fi
elif [[ $guess -lt $number ]];then
echo "Your reply is smaller than the answer."
else
echo "Your reply is bigger than the answer."
fi
done
echo "Game over" # 循环结束后执行
2.忽略大小写(逻辑运算符)
bash复制代码
#!/bin/bash
# 学习目标:掌握逻辑运算符||的使用
# 知识点:逻辑或(||)、忽略大小写的用户输入处理
number=9
echo "Random number is $number"
while true
do
echo "Input a number in 1-10"
read guess
if [[ $guess -eq $number ]];then
echo "You are right! Continue?(y/n):"
read con
# 关键判断:使用逻辑或(||)接受'y'或'Y'继续游戏
# 新增功能:忽略大小写,提升用户体验
if [[ $con = "y" ]] || [[ $con = "Y" ]]; then
continue
else
break
fi
elif [[ $guess -lt $number ]];then
echo "Your reply is smaller than the answer."
else
echo "Your reply is bigger than the answer."
fi
done
echo "Game over"
3.随机数猜数字(RANDOM随机数)
bash复制代码
#!/bin/bash
# 学习目标:掌握使用RANDOM变量生成随机数
# 知识点:$RANDOM变量、取余运算%、算术表达式$((...))
number=$((RANDOM % 10 + 1)) # 生成1-10的随机数:RANDOM%10得0-9,+1后得1-10
echo "Random number is $number"
while true
do
echo "Input a number in 1-10"
read guess
if [[ $guess -eq $number ]];then
echo "You are right! Continue?(y/n):"
read con
if [[ $con = "y" ]] || [[ $con = "Y" ]]; then
continue
else
break
fi
elif [[ $guess -lt $number ]];then
echo "Your reply is smaller than the answer."
else
echo "Your reply is bigger than the answer."
fi
done
echo "Game over"
4.猜数字完整版(每次都重新生成随机数继续猜)
bash复制代码
#!/bin/bash
# 学习目标:实现完整的可重复游戏流程
# 知识点:游戏状态重置、循环内重新生成随机数、完整游戏逻辑整合
number=$((RANDOM % 10 + 1))
echo "NEW GAME!Random number is $number"
while true
do
echo "Input a number in 1-10"
read guess
if [[ $guess -eq $number ]];then
echo "You are right! Continue?(y/n):"
read con
if [[ $con = "y" ]] || [[ $con = "Y" ]];then
# 关键改进:猜对后重新生成随机数,开始新游戏
number=$((RANDOM % 10 + 1))
echo "NEW GAME!Random number is $number"
continue # 继续下一轮(新数字)
else
break
fi
elif [[ $guess -lt $number ]];then
echo "Your reply is smaller than the answer."
else
echo "Your reply is bigger than the answer."
fi
done
echo "Game over"