Linux中使用shell脚本生成随机数
1.主体思想:
为了实现随机数的随机性,所以在这里借用date中的%s%N可以输出从1970年1月1日00:00:00到目前经历的秒数,从而产生变化的数字,再通过已知的需要生成随机数范围,通过公式:time%(max-min+1)+min来得到【min,max】范围内的随机数。
2.编写过程
a.在用户文件夹下创建random.sh文件
[Gadam@dashuju ~]$ ls
[Gadam@dashuju ~]$ cd Downloads
[Gadam@dashuju Downloads]$ ls
b.打开并对random.sh文件进行编辑
[Gadam@dashuju Downloads]$ vim random.sh
random.sh内部代码:
#! /bin/bash
random(){
min=$1
max=$2
time=$(date +%s%N)
num=$[ $max-$min+1]
out=$[ $time%$num+$min]
echo $out
}
read -p"please input max:" a
read -p"please input min:" b
random $b $a
保存并退出后执行如下代码运行random.sh
[Gadam@dashuju Downloads]$ ./random.sh
运行后界面如下:
为了验证确实能显示所有范围内数字,现将代码改为生成2~6的随机数进行验证:
#! /bin/bash
random(){
min=$1
max=$2
time=$(date +%sN)
num=$[ $max-$min+1]
out=$[ $time%$num+$min]
echo $out
}
random 2 6
运行结果图:
3.可能遇到的问题:
a. vim的使用方法:
vim命令的格式:vim 文件名
进入编辑界面后,按“i”进入编辑模式
退出并保存先按“esc”后按“:wq”即可退出编辑模式
============================================
b. shell脚本无法运行
情况1:文件名称命名错误
注意:在Linux中万物皆文件,所以创建文件时要注意后缀,shell文件的后缀为“.sh”,如果不加后缀,文件无法运行。
情况2:文件没有运行权限
shell文件想要运行需要有运行权限,可以通过如下代码设置运行权限:
[Gadam@dashuju Downloads]$ chmod 700 random.sh