
如果我们想产生,像图示格式的随机时间怎么办?
小二带来源码分享~~ (转载请注明出处)
#!/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