【原创】shell产生指定范围内的随机时间

如果我们想产生,像图示格式的随机时间怎么办?

小二带来源码分享~~  (转载请注明出处)

 #!/bin/sh
########################################
#产生指定范围的随机年月日(YY-MM-DD HH:MM:SS),以10年为例
#1、定义4个函数
#2、调用函数,拼接输出字符串
#
#Created by: 枫林阁小二   @博客园
#######################################

#定义函数,产生随机年月日
ran_ymd(){
#产生范围在0~3650(包含3650)的随机数;下面几个函数同理 num=$(($RANDOM%3651))
#定义变量ymd,赋值(格式yyyy-mm-dd) ymd=`date -d "${num} days ago" +%Y-%m-%d` echo ${ymd} } #产生指定范围的小时 ran_hour(){ x=`echo {00..23}`
#定义数组.至于为什么最大数是23,读者请自己想 >-< array=($x) num=$(($RANDOM%24))
#产生出来的随机数,直接关联数组下标,求得随机数 hour=`echo ${array[${num}]}` echo ${hour} } #产生指定范围的分钟 ran_min(){ x=`echo {00..59}` array=($x) num=$(($RANDOM%60)) min=`echo ${array[${num}]}` echo ${min} } #产生指定范围的秒 ran_sec(){ x=`echo {00..59}` array=($x) num=$(($RANDOM%60)) sec=`echo ${array[${num}]}` echo ${sec} } #产生指定的时间,格式 YYYY-MM-DD HH:MM:SS ran_time(){ a=`ran_ymd` b=`ran_hour` c=`ran_min` d=`ran_sec` #开始拼接 time1=`echo "${a} ${b}:${c}:${d}"` echo ${time1} } #下面开始验证功能,循环50次打印结果 for i in {1..50} do result=`ran_time` #拼接变量输出字符串 echo ${result} done

 

原文地址:https://www.cnblogs.com/sdmxl/p/10616947.html