Fish Shell:
Confronto tra due date
Come fare:
Per confrontare due date in Fish, utilizza il comando date
per ottenere i secondi dal 1° gennaio 1970 (timestamp) e confrontali con -gt
, -lt
, o -eq
.
# Ottieni timestamp attuale
set -l now (date "+%s")
# Imposta una data specifica (es. 28 Febbraio 2023)
set -l specific_date "2023-02-28"
set -l specific_date_timestamp (date -d $specific_date "+%s")
if test $now -gt $specific_date_timestamp
echo "La data attuale è dopo il 28 Febbraio 2023."
else if test $now -lt $specific_date_timestamp
echo "La data attuale è prima del 28 Febbraio 2023."
else
echo "Oggi è il 28 Febbraio 2023."
end
Output dipende dalla data corrente quando esegui il codice.
Approfondimento
Confrontare date in shell scripting non è sempre stato chiaro. Prima, ci si affidava a tool esterni come dateutils
, ma ora Fish e le altre moderne shell offrono modi integrati per gestire date e orari, rendendo il lavoro più immediato.
Tools alternativi includono awk o perl scripts per complessità maggiori. Dettagli di implementazione variano tra sistemi operativi (attenzione ai formati di data!).
Fish non ha una manipolazione di date altrettanto sofisticata come in altri linguaggi di programmazione, ma è sufficiente per le operazioni base come il confronto di timestamp.
Vedere anche:
- Documentazione Fish per il comando
date
: https://fishshell.com/docs/current/cmds/date.html - Tutorial sui comandi
test
: https://fishshell.com/docs/current/cmds/test.html - Comparazione di date UNIX timestamp: https://en.wikipedia.org/wiki/Unix_time