生成随机数
- 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
#备注:算数运算 “$((运算式))”=“$[运算式]”
- shuf生成随机数
-i 1-10 表示1-10的随机数 -n 表示生成一个
$ shuf -i 1-10 -n 1
5
$ shuf -i 1-10 -n 2
5
3
- 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、? 变量包含了之前执行命令的退出状态(最近完成的前台进程)(可以用于检测退出状态)
- 语句
#!/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