Bash Einzeiler if date then?

2 Antworten

If ist eine bedingte Ausführung, also maximal eien Verzwigung des Kontrollflusses:

if [ "$(date +%Y-%m-%d)" == '2021-08-03' ]; then echo "Yes"; fi

Exemplarisch mit heutigem Datum und einer Ausgabe.

Oder auch:

[ "$(date +%Y-%m-%d)" == '2021-08-03' ] && echo "Yes"

Es gibt sicherlich noch mehr Varianten, je nach Bedarf.

fragwuerdiger81 
Fragesteller
 05.08.2021, 08:43

Mir fällt gerade auf... Ich benötige eigentlich sowas wie die Funktion -ge greater or equal. Also ab diesem Datum soll die Zeile weiter ausgeführt werden. Wo baut man das nun mit ein?

0
KarlRanseierIII  05.08.2021, 12:20
@fragwuerdiger81

Dazu müßten wir aus dem Datum einen Integer machen.

[ "$(date +%Y%m%d)" -ge '20210803' ] && echo "Yes"

Wir verzichten also auf die Trennstriche und schon geht auch das.

1

Bestünde auch die Möglichkeit auf diese Weise einen fixen Termin zu bestimmen?

Im aktuellen Einzeiler soll ja ein bestimmtes Datum mit dem aktuellen Datum abgeglichen werden ob gleich oder größer.

Was wäre wenn ein festes Datum zb heute eingetragen wird und es sollen zb 90 Tage dazu gerechnet werden?

Festes Datum + 90 Tage && weiterer Befehl