-
概述
- 嘗試格式化打印
-
背景
- 想用 shell 做一個隨機打印日期的
-
環境
- os
- win10
- git-bash
- mintty-2.9.4
- os
1. 思路1: 隨機數生成日期, 然后格式化打印
-
概述
- 隨機數, 格式化
-
准備
- 隨機數
- $RANDOM
- 格式化打印
- printf
- 隨機數
-
問題
- printf 還不熟悉
- 這個可以學, 小問題
- 可能會生成不存在的日期
- 比如 02-30, 04-31 之類的
- 可以用 sed 或者 vim 修一遍, 但是感覺工作量有點大
- 生成時判斷, 也不是很方便
- printf 還不熟悉
2. 思路2: 隨機數指定范圍, 然后用 date 命令創造日期
-
概述
- 隨機數, date
-
准備
- 隨機數
- $RANDOM
- date
- 格式化打印
-
我需要的格式是這樣 2020-05-20
> date +%Y-%m-%d
-
- -d 指定需要格式化打印的日期
-
今天
> date -d '' +%Y-%m-%d
-
今天前/后一天
# day, week, month, year 可以使用 > date -d '-1 day' +%Y-%m-%d > date -d '1 day' +%Y-%m-%d # hour, minutes, second 也可以 # 注意后面需要用 "" > date -d '1 hour' "+%Y-%m-%d %H:%M:%S" > date -d '-1 hour' "+%Y-%m-%d %H:%M:%S"
-
指定日期
> date -d '20200520' +%Y-%m-%d
-
- 格式化打印
- 隨機數
-
思路
-
用 $RANDOM 來控制天數
# 1. 可以找到 今天 到 去年今天之間的日期 > date -d "-$[RANDOM%365] day" +%Y-%m-%d # 2. 不想要今天, 也可以指定別的日期 > date -d "20200202 -$[RANDOM%365] day" +%Y-%m-%d
-
-
腳本
- 套個循環直接完事
- 略
- 套個循環直接完事
3. 后續
- 如果 還需要隨機的時間, 我怎么辦
-
ref 里用的是 數組
-
我想用 printf
-
我感覺, 應該是數組會快些吧...
-
當然能也有 好寫的方法
> date -d "-$[RANDOM%365] day -$[RANDOM%24] hour" "+%Y-%m-%d %H:%M:%S"
-
ps
- ref
- shell產生指定范圍內的隨機時間
- 這個小哥寫的腳本, 還是很不錯的
- 關於 {1..10} 中使用 變量
- shell產生指定范圍內的隨機時間