2017-06-20 2 views
1

Ich brauche ein Array aller Daten der aktuellen Woche in BASH 4, in OSX.osx montag datum aktuelle woche bash

Ich versuchte, den Montag Datum zu bekommen, aber auf OSX das Datum nicht funktioniert genauso wie Linux (GDATE)

Das Ergebnis ich brauche:

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 

Ich bin ein Anfänger in bash und versucht für 2 Stunden etwas im Internet zu finden, ohne Erfolg.

Vielen Dank für Ihre Hilfe.

Antwort

1

haben Sie versucht man date?

Ruft das Datum so eingestellt, dass der Wochentag der vorherige Montag ist. Wenn es Montag ist, gibt es den aktuellen Tag, also, wenn Sie Stunden, Minuten und Sekunden verwerfen, erhalten Sie das Datum des ersten Wochentages.

date -v-monday +'%Y-%m-%d' 

Ruft das Format auf, das Sie angefordert haben. Um die nächsten Daten zu erhalten, können Sie -v verwenden, um weitere Einstellungen vorzunehmen, z. date -v-monday -v+1d +'%Y-%m-%d' gibt das Datum der aktuellen Woche Dienstag.

So Ihre Frage vollständig zu beantworten:

#!/bin/bash 

for i in $(seq 0 6) 
do 
    WEEKDAYS[$i]=`date -v-monday -v+"$i"d +'%Y-%m-%d'` 
done; 
+0

Oder als Einzeiler ... 'array = ($ (für i in {0..6}; do Datum -v-Montag - v + "$ i" d + '% Y-% m-% d'; done)) ' –

+0

Mit' 'i in {0..6}' könntest du die Dinge innerhalb der Bash behalten. Anstatt mit Zitaten auf diese Weise zu mucken, sollten Sie auch 'WEEKDAYS [$ i] = $ (Datum -v-montag -v + $ {i} d '+% F')' in Erwägung ziehen. – ghoti

+0

Es funktioniert wie ein Charme :) Danke für Ihre Hilfe! –

Verwandte Themen