Bash:
Calcolo di una data futura o passata
How to:
Calcoliamo le date usando il comando date in Bash. Ecco degli esempi:
# Data attuale
oggi=$(date '+%Y-%m-%d')
echo "Oggi è: $oggi"
# Aggiungi 10 giorni
data_futura=$(date -d "$oggi + 10 days" '+%Y-%m-%d')
echo "Tra 10 giorni sarà: $data_futura"
# Rimuovi 20 giorni
data_passata=$(date -d "$oggi - 20 days" '+%Y-%m-%d')
echo "20 giorni fa è stato: $data_passata"Output previsto:
Oggi è: 2023-04-01
Tra 10 giorni sarà: 2023-04-11
20 giorni fa è stato: 2023-03-12Deep Dive
Il comando date in Unix è vecchio quanto i computer stessi. Era già presente in versioni iniziali di Unix. date permette di visualizzare o impostare la data e l’ora del sistema.
Alternative:
gdate: su sistemi non GNU (come macOS), potresti usaregdatese installicoreutils.- Altre lingue di scripting (Python, Perl): potrebbero offrire più flessibilità e funzioni per la gestione delle date.
Dettagli implementativi:
- Bash non ha una gestione integrata delle date. Si appoggia al comando
datedel sistema. - L’opzione
-ddidatepermette di passare una stringa che descrive la data desiderata. - Attenzione alle configurazioni regionali: la data può essere interpretata in modi diversi. Per esempio, in alcune localizzazioni, il formato di default potrebbe essere
gg/mm/aaaainvece diaaaa-mm-gg.
See Also
- Man page di
dateper altre opzioni: man7.org - Guida alla gestione delle date in bash: Bash Date Guide
- Documentazione GNU coreutils
date: GNU coreutils date