2017-06-20 98 views
1

我需要在BASH 4中的OSX中获取本周的所有日期 的数组。osx星期一日期本周bash

我试图让周一日期, 但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小时 找到在互联网上的东西,没有成功。

非常感谢您的帮助。

回答

1

have you tried 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; 
+0

,或作为一个班轮...'阵列=($(因为我在{0..6};做日期-v,周一 - v +“$ i”d +'%Y-%m-%d'; done))' –

+0

您可以使用'for in {0..6}'中的东西保存bash。此外,不要用这种方式引用引号,请考虑'WEEKDAYS [$ i] = $(date -v-monday -v + $ {i} d'+%F')'。 – ghoti

+0

它像一个魅力工作:)谢谢你的帮助! –

相关问题