[RISOLTO] script: errore di sintassi
Inviato: ven 2 gen 2026, 9:17
Salve!
Sto cercando di fare uno script che muova i file.log vecchi in una directory e lasci solo quello con la data odierna. Ottengo un errore di sintassi. Sotto posto lo script e l'errore ottenuto alla sua esecuzione. Qualcuno potrebbe aiutarmi a capire e correggere l'errore?
Grazie
Sto cercando di fare uno script che muova i file.log vecchi in una directory e lasci solo quello con la data odierna. Ottengo un errore di sintassi. Sotto posto lo script e l'errore ottenuto alla sua esecuzione. Qualcuno potrebbe aiutarmi a capire e correggere l'errore?
Grazie
Codice: Seleziona tutto
#!/bin/bash
# Configurazione
directory_SORGENTE="$HOME/"
directory_DESTINAZIONE="$HOME/LOG/"
OGGI=$(date +%Y-%m-%d) # Formato 2026-01-02
# Crea la directory di destinazione se non esiste
mkdir -p "$directory_DESTINAZIONE"
# Cicla su tutti i file nella directory sorgente
for FILEPATH in "$directory_SORGENTE"/*; do
# Estrae solo il nome del file dal percorso
FILENAME=$(basename "$FILEPATH")
# Salta se non è un file (es. se è una sottocartella)
[ -f "$FILEPATH" ] || continue
# Estrae la data dal nome del file (cerca una sequenza di 8 cifre)
# Esempio: da "backup_20260101.zip" estrae "20260101"
DATA_FILE=$(echo "$FILENAME" | grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}'
# Verifica se la data è stata trovata e se è diversa da oggi
if [[ -n "$DATA_FILE" ]]; then
if [[ "$DATA_FILE" != "$OGGI" ]]; then
echo "Sposto $FILENAME (Data rilevata: $DATA_FILE)"
mv "$FILEPATH" "$directory_DESTINAZIONE/"
else
echo "Mantengo $FILENAME (È di oggi)"
fi
else
echo "Ignorato $FILENAME (Nessuna data YYYY-MM-DD trovata)"
fi
doneCodice: Seleziona tutto
~$ ./FILE_LOG.sh
./FILE_LOG.sh: riga 34: errore di sintassi vicino al token non atteso "done"
./FILE_LOG.sh: riga 34: `done '