Mit bash date kann ich erreichen, dass ein Wochentag relativ zur aktuellen Uhrzeit zurückgegeben wird.
%Vor%Ich kann auch einen Tag relativ zu einem anderen Datum zurückgeben
%Vor%Aber wie kann ich erreichen, dass der Wochentag relativ zu einer nicht aktuellen Uhrzeit zurückgegeben wird? Was ich machen möchte ist:
%Vor%Wenn möglich, würde ich sogar in der Lage sein, Zeichenketten zu verketten, so dass ich auf relative Tage vom neuen Datum verweisen kann:
%Vor%Obwohl diese Verkettung nicht so wichtig ist. Gibt es eine Möglichkeit für bash date einen Tag basierend auf dem relativen Wochentag zurückzugeben?
Sie können eine kleine Tageszahl verwenden:
%Vor%Ergebnis:
%Vor%Nun mit bash kann es mit einer Schleife gemacht werden (z. B. das Datum, das Sie als Referenz in eine Variable in Unix% s Format verwenden wollen, als dekrementieren Sie es mit 24 * 60 * 60 prüfen, ob es Sonntag ist, und drucken Sie es aus wenn es wahr ist ...)
Oder Sie können etwas mit awk
Sie können es hier in Aktion sehen . Fast. Als ideone (was ich verehre) erlaubt es nicht, Befehlszeilenvariablen an gawk
weiterzuleiten (oder ich war faul, es herauszufinden ;-)) Ich musste sie auch in den Block BEGIN
einbetten.
Wenn Sie möchten, können Sie das oben genannte in ein datecalc.awk
konvertieren (mit !#/usr/bin/gawk -f
script, das ARGV[n]
Variablen anstelle von -v
benutzt), damit Sie es leicht von Ihren Shell Skripten aus aufrufen können.
Dies ist ziemlich einfach zu tun, wenn Sie libfaketime installiert haben.
Sie können es verketten, indem Sie FAKETIME dynamisch einstellen. Dies wird unordentlich, aber wird funktionieren:
%Vor%