Fish Shell:
Vergleich von zwei Daten

So geht’s:

In Fish nutzt man oft date, um mit Daten zu hantieren. Hier ein schneller Weg, um zwei Daten zu vergleichen:

set date1 (date -ud '2023-03-15' +%s)
set date2 (date -ud '2023-03-20' +%s)

if test $date1 -lt $date2
    echo "Datum1 ist früher als Datum2."
else if test $date1 -eq $date2
    echo "Datum1 und Datum2 sind gleich."
else
    echo "Datum1 ist später als Datum2."
end

Ausgabe, je nach Vergleich:

Datum1 ist früher als Datum2.

oder

Datum1 und Datum2 sind gleich.

oder

Datum1 ist später als Datum2.

Tiefgang:

Das Konzept des Datenvergleichs gibt es, seit Computer Zeitkonzepte verwalten. In Unix-artigen Systemen wie denen, in denen Fish läuft, wird oft die Anzahl der Sekunden seit dem 1. Januar 1970 (der sogenannten “Unix-Epoche”) verglichen.

Es gibt Alternativen zu date wie z.B. strtotime in PHP oder datetime Module in Python, die ähnliche Funktionalitäten bieten. Aber in einer Shell, besonders in Fish, sind eingebaute Funktionen oft schneller und leichter zu schreiben.

Die Implementierungsdetails variieren. Für Fish und meisten Unix-Systeme konvertiert date +%s ein Datumsstring in eine Ganzzahl, die die Sekunden seit der Epoche darstellt. Das macht den Vergleich einfach und effizient: die größere Zahl ist die spätere Zeit.

Siehe auch: