Bash Einzeiler if date then?
Ich suche nach einem Einzeiler der innerhalb eines Bash Scripts den Befehl bzw diese eine Zeile nur ausführt wenn ein bestimmtes Datum vorliegt.
Falls dies als Einzeiler nicht machbar ist, wie schaut dies als If then Schleife aus?
Also quasi wie der Befehl | at am Ende einer Zeile nur auf ein bestimmtes Datum bezogen. Ich hoffe ihr wisst was ich meine :)
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.
Dokumentation der Shell lesen? Oder alternativ:
https://tldp.org/LDP/abs/html/
den Klassiker schlechthin. ;-)
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?
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.
Auch das funktioniert wie erwartet tadellos. Vielen Dank
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
Was soll ich sagen... funktioniert! Woher kennt man bloß solche Befehle?
Vielen Dank