PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit for Schleife in Bash



Upperchen
13.07.2015, 14:35
Ich lese gerade ein Buch über Linux. Da wird eine Forschleife vorgestellt, die zur Datensicherung des Homeverzeichnisses dient. Als ZIPverzeichnis hab ich meine externe Festplatte gewählt. Ich hab auch schon die Orignallaufwerksbezeichnungen aus dem Buch 1:1 übernommen, also daran liegt es nicht., aber das hat auch keine Änderung gebracht. Das Programm scheitert in den letzen Zeilen und zeigt einen Syntaxfehler an.



ubuntu-pc2:~/Dokumente$ ./forschleife1.sh
./forschleife1.sh: Zeile 20: Syntaxfehler beim unerwarteten Wort »fi«
./forschleife1.sh: Zeile 20: `fi'


Der gesamte Code sieht so aus:



#!/bin/bash

ZIPDEVICE=/dev/sdb5
TARGET=/mnt/zip

for DIR in /home/*; do
if [ -d $DIR ] # Ist es ein Verzeichnigs?; then
mount -t vfat $ZIPDEVICE $TARGET
if [ $? -eq 0 ]
then
cp -r $DIR $TARGET
unmount $TARGET
echo "Bitte nächstes Medium einlegen"
else
echo "Moutvorang schlug fehl!"

exit

fi
fi

done


Ich hab den Code mehrfach auf Fehler, aber so wie er jetzt ist finde ich keine Fehler mehr. Weiß Jemand was ich an diesem Code falsch gemacht habe?

Hu5eL
13.07.2015, 19:20
#!/bin/bash

ZIPDEVICE=/dev/sdb5
TARGET=/mnt/zip

for DIR in /home/*; do
if [ -d $DIR ] # Ist es ein Verzeichnigs?; then
mount -t vfat $ZIPDEVICE $TARGET
if [ $? -eq 0 ]
then
cp -r $DIR $TARGET
unmount $TARGET
echo "Bitte nächstes Medium einlegen"
else
echo "Moutvorang schlug fehl!"

exit

fi
fi

done



du hast in der zeile if [ -d $DIR ] # Ist es ein Verzeichnigs?; then durch das # das ;then auskommentiert...