我需要获取所有日期的数组 OSX中BASH 4当周的一周。
我试图获得星期一的约会, 但在OSX上,日期与Linux(gdate)
的工作方式不同我需要的结果:
array=(
'YYYY-MM-DD', # MONDAY
'YYYY-MM-DD', # TUESDAY
'YYYY-MM-DD', # WEDNESDAY
'YYYY-MM-DD', # THURSDAY
'YYYY-MM-DD', # FRIDAY
'YYYY-MM-DD', # SATURDAY
'YYYY-MM-DD') # SUNDAY
我是bash的新手,尝试了2个小时 在互联网上找东西,没有成功。
非常感谢你的帮助。
答案 0 :(得分:2)
你试过man date
吗?
date -v-monday
获取调整后的日期,以便工作日是上一个星期一。如果它是星期一它给出当天,所以如果你丢弃小时,分钟和秒你就得到了一周中第一天的日期。
date -v-monday +'%Y-%m-%d'
获取您请求的格式。要获得下一个日期您可以使用-v进一步调整,例如date -v-monday -v+1d +'%Y-%m-%d'
给出当周星期二的日期。
完全回答你的问题:
#!/bin/bash
for i in $(seq 0 6)
do
WEEKDAYS[$i]=`date -v-monday -v+"$i"d +'%Y-%m-%d'`
done;