#!/bin/bash # 脚本生成一个 100 以内的随机数,提示用户猜数字,根据用户的输入,提示用户猜对了, # 猜小了或猜大了,直至用户猜对脚本结束。 # RANDOM 为系统自带的系统变量,值为 0‐32767的随机数 # 使用取余算法将随机数变为 1‐100 的随机数 num=$[RANDOM%100+1] echo "$num" # 使用 read 提示用户猜数字 # 使用 if 判断用户猜数字的大小关系:‐eq(等于),‐ne(不等于),‐gt(大于),‐ge(大于等于), # ‐lt(小于),‐le(小于等于) while : do read -p "计算机生成了一个 1‐100 的随机数,你猜: " cai if [ $cai -eq $num ] then echo "恭喜,猜对了" exit elif [ $cai -gt $num ] then echo "Oops,猜大了" else echo "Oops,猜小了" fi Done运行成功的截图
时间: 2024-04-01 12:37:58 浏览: 12
抱歉,我无法查看你的本地运行截图。不过,我可以看到该脚本的一些问题。首先,Done 应该是 done,是一个语法错误。另外,脚本在生成随机数时使用了 $[...] 的形式,这是一种旧的 Bash 扩展方式,建议改为 $((...)) 的形式。最后,需要注意一些特殊情况,例如用户输入的不是数字时脚本会出错,建议加入输入检查的逻辑。
相关问题
Shell 编程题,猜数字游戏,脚本生成一个 100 以内的随机数,提示用户猜数字,根据用户的输入,提示用户猜对了, 猜小了或猜大了,直至用户猜对脚本结束。
好的,我将为您提供一个 Shell 脚本实现猜数字游戏:
```bash
#!/bin/bash
# 生成 1~100 的随机数
number=$((RANDOM % 100 + 1))
# 提示用户猜数字
echo "猜一个 1~100 之间的数字:"
# 循环判断用户输入的数字是否等于随机数
while true
do
read guess
if [[ $guess -eq $number ]]
then
echo "恭喜你,猜对了!"
break
elif [[ $guess -lt $number ]]
then
echo "猜小了,请再试一次:"
else
echo "猜大了,请再试一次:"
fi
done
```
脚本首先生成一个 1~100 的随机数,然后提示用户猜数字,进入一个无限循环,直到用户猜对为止。在循环中,脚本判断用户输入的数字是否等于随机数,如果是,则输出猜对了的提示并结束循环;否则,根据用户猜的数字与随机数的大小关系输出猜小了或猜大了的提示,继续等待用户输入。
linux利用while循环结构实现猜数字游戏,脚本生成一个100以内的随机数,提示用户猜数字,根据用户的输入,提示用户猜对了,猜小了或猜大了,直至用户猜对脚本结束。
好的,以下是实现该功能的 Bash 脚本:
```
#!/bin/bash
# 生成随机数
answer=$((RANDOM % 100 + 1))
echo "猜数字游戏开始!猜一个1到100的整数。"
# 循环判断用户输入
while true; do
read -p "请输入你猜的数字:" guess
if [[ $guess -eq $answer ]]; then
echo "恭喜你,猜对了!"
break
elif [[ $guess -lt $answer ]]; then
echo "猜小了,再试一次。"
else
echo "猜大了,再试一次。"
fi
done
```
这个脚本会生成一个 1 到 100 的随机整数,并提示用户输入一个数字进行猜测。如果用户猜对了,脚本会输出恭喜信息并结束;否则,根据用户的猜测输出提示信息,直到用户猜中为止。