猜数游戏-shell脚本

生成随机数

  1. RANDOM变量生成0-32767的数值

生成1-10的随机数


$ echo $RANDOM
18314

#取模运算。linux运算必须加括号
$ echo $RANDOM % 10
26907 % 10

#取模余数为0-9
huayu@LAPTOP-MBCTH7PD MINGW64 ~ (master)
$ echo $((RANDOM % 10))
7
#取模余数+1  表达式$(())
huayu@LAPTOP-MBCTH7PD MINGW64 ~ (master)
$ echo $((RANDOM % 10 + 1))
8
#取模余数+1  表达式$[]
huayu@LAPTOP-MBCTH7PD MINGW64 ~ (master)
$ echo $[ RANDOM % 10 +1 ]
3
#备注:算数运算 “$((运算式))”=“$[运算式]”
  1. shuf生成随机数

-i 1-10 表示1-10的随机数 -n 表示生成一个

$ shuf -i 1-10 -n 1
5
$ shuf -i 1-10 -n 2
5
3
  1. if语句
if [ command ];then 
符合该条件执行的语句
 elif [ command ];then 
 符合该条件执行的语句 
 else 
 符合该条件执行的语句 
 fi

1.[ ]表示条件测试。注意这里的空格很重要。要注意在’[‘后面和’]'前面都必须要有空格 在shell中,then和fi是分开的语句。如果要在同一行里面输入,则需要用分号将他们隔开。
3、注意if判断中对于变量的处理,需要加引号,以免一些不必要的错误。没有加双引号会在一些含空格等的字符串变量判断的时候产生错误。比如[
-n “$var” ]如果var为空会出错 4、判断是不支持浮点值的 5、如果只单独使用>或者<号,系统会认为是输出或者输入重定向,虽然结果显示正确,但是其实是错误的,因此要对这些符号进行转意
6、在默认中,运行if语句中的命令所产生的错误信息仍然出现在脚本的输出结果中
7、使用-z或者-n来检查长度的时候,没有定义的变量也为0
8、空变量和没有初始化的变量可能会对shell脚本测试产生灾难性的影响,因此在不确定变量的内容的时候,在测试号前使用-n或者-z测试一下
9、? 变量包含了之前执行命令的退出状态(最近完成的前台进程)(可以用于检测退出状态)

  1. 语句
#!/bin/bash
echo "请输入你的姓名:"
#read name
#name=$1
#channel=$2
#将name channel导入全局变量 export name=tracy或者在$HOME .bashrc文件下自定义变量 source .bashrc
echo "你好,$name,欢迎来到$channel!"
number=$(shuf -i 1-10 -n 1)
echo $number
while true
do
echo "请输入一个1-10之内的数字"
read guess

if [[ $guess -eq $number ]];then
  echo "猜对了!是否继续游戏:y|n"
  read choice
  #在方口号 = 之间有空格
  if [[ $choice = "y" ]] || [[ $choice = "Y" ]];then
    echo "continue 结束当前循环,重新生成一个随机数"
    number=$(( RANDOM % 10 +1))
    echo "$number"
    continue
  else
    echo "break 结束循环"
    break
  fi
elif [[ $guess -lt $number ]];then
  echo "猜小了"
else
  echo "猜大了"
fi
done

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值