2017-06-20 141 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

它像一個魅力工作:)謝謝你的幫助! –

相關問題