Ich habe Probleme bei der Suche nach Fehler im Bash-Skript für die Behandlung von Backup: täglich, monatlich, jährlich. Hier ist das Skript:Fehler bei der Sicherung Bash-Skript: Syntaxfehler in der Nähe von unerwarteten Token `Newline '
#!/bin/bash
echo > /home/alpha/folder/keep.txt
#writing dates of the backups that should be kept to the array
for i in {0..7}; do ((keep[$(date +%Y%m%d -d "-$i day")]++)); done
for i in {0..4}; do ((keep[$(date +%Y%m%d -d "sunday-$((i+1)) week")]++)); done
for i in {0..12}; do
DW=$(($(date +%-W)-$(date -d $(date -d "$(date +%Y-%m-15) -$i month" +%Y-%m-01) +%-W)))
for ((AY=$(date -d "$(date +%Y-%m-15) -$i month" +%Y); AY < $(date +%Y); AY++)); do
((DW+=$(date -d $AY-12-31 +%W)))
done
((keep[$(date +%Y%m%d -d "sunday-$DW weeks")]++))
done
for i in {0..30}; do
DW=$(date +%-W)
for ((AY=$(($(date +%Y)-i)); AY < $(date +%Y); AY++)); do
((DW+=$(date -d $AY-12-31 +%W)))
done
((keep[$(date +%Y%m%d -d "sunday-$DW weeks")]++))
done
#writing the array to file keep.txt line by line
for i in ${!keep[@]}; do echo $i >> /home/alpha/folder/keep.txt; done
#delete all files that not mentioned in keep.txt
cd /home/alpha/folder
ls -1 /home/alpha/folder/ | sort /home/alpha/folder/keep.txt /home/alpha/folder/keep.txt - | uniq -u | xargs rm -rf
rm /home/alpha/folder/keep.txt
Wenn ich versuche, um das Skript auszuführen, führt Fehlermeldung:
./back.sh: line 12: syntax error near unexpected token `newline' ./back.sh: line 12: ` done'
Wo habe ich das Drehbuch falsch gemacht?
Können Sie bitte mehr mit hilfreicher Link vielleicht erarbeiten. –
Es tut mir leid, es war ein Fehler meinerseits beim Testen des Skripts, ich entfernte den Kommentar – Aserre
Bunch von Problemen, die nicht doppelt zitiert die Variablen, kopieren Sie Ihr Skript einfügen unter http://www.shellcheck.net/ und sehen es für sich – Inian