
如果我們想產生,像圖示格式的隨機時間怎么辦?
小二帶來源碼分享~~ (轉載請注明出處)
#!/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
