[RISOLTO] script: errore di sintassi

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
tigerwalk
Linux 3.x
Linux 3.x
Messaggi: 895
Iscritto il: lun 25 feb 2008, 22:08
Nome Cognome: Giuliano della Vecchia
Slackware: 13.37-14.2
Kernel: 3.10.17-tiger / 4.4.88-smp
Desktop: kde4/xfce4
Località: Napoli

[RISOLTO] script: errore di sintassi

Messaggio da tigerwalk »

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

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
done

Codice: 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 '
Ultima modifica di tigerwalk il ven 2 gen 2026, 11:13, modificato 1 volta in totale.

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 3113
Iscritto il: mer 5 mar 2008, 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 6.17.4
Desktop: lxde
Località: Pisa
Contatta:

Re: script: errore di sintassi

Messaggio da ponce »

cosi' a occhio nella riga che inizia per DATA_FILE manca la parentesi di chiusura.

Avatar utente
tigerwalk
Linux 3.x
Linux 3.x
Messaggi: 895
Iscritto il: lun 25 feb 2008, 22:08
Nome Cognome: Giuliano della Vecchia
Slackware: 13.37-14.2
Kernel: 3.10.17-tiger / 4.4.88-smp
Desktop: kde4/xfce4
Località: Napoli

Re: script: errore di sintassi

Messaggio da tigerwalk »

ponce ha scritto:
ven 2 gen 2026, 10:43
cosi' a occhio nella riga che inizia per DATA_FILE manca la parentesi di chiusura.
Si grazie. In effetti mancava tutto risolto adesso.

Rispondi