Hallo,
ich hab eine kleine Frage zu einen Shell Script !
Ich habe eine Text Datei mit Einträgen wie in einem Telefonbuch :
Hans Michel, Bismarckstr. 5, 76333 Neustadt
Frank Debehr, Siebenweg. 17, 76333 Neustadt
Helga Michel, Bismarckstr. 7, 76333 Neustadt
Gabi Michel, Elsassstr. 5, 89543 Altstadt
Dazu gibt es folgendes Script :
Code:
#!/bin/bash
# Lösung zu Aufgabe 1 " Adressbuch "
echo "Lösung zu Aufgabe 1"
# Test ob genug Parameter
if test $# -lt 1
then
echo ""
echo "Zu Wenig Parameter !"
echo "Aufruf " $0 "+ Adressbuchdatei + Parameter...."
echo ""
exit 1
fi
# Speichern der Einträge der Adressbuchdatei in Variable
adressbook=`cat "$1"`
shift 1
# Abarbeiten der Parameter
for i
do
adressbook=`echo "$adressbook" | grep "$i"`
done
echo "$adressbook"
exit 0
fi
Mit einem Aufruf wie z.B.
./script_1.sh adressen_bsp_1.txt "Bis"
Gibt es folgende Ausgabe :
Lösung zu Aufgabe 1
Hans Michel, Bismarckstr. 5, 76333 Neustadt
Helga Michel, Bismarckstr. 7, 76333 Neustadt
Mit
./script_1.sh adressen_bsp_1.txt "Bis" Helg
Gibt es folgende Ausgabe
Lösung zu Aufgabe 1
Helga Michel, Bismarckstr. 7, 76333 Neustadt
Meine Frage ist der folgende Teil :
Code:
# Abarbeiten der Parameter
for i
do
adressbook=`echo "$adressbook" | grep "$i"`
done
echo "$adressbook"
exit 0
fi
Wieso kann ich das nicht so machen :
Code:
for i
do
adressbook=`echo "$adressbook" | grep "$i"`
done
fi
echo "$adressbook"
exit 0
Als Fehlermeldung bekomme ich :
Lösung zu Aufgabe 1
./script_1.sh: line 24: syntax error near unexpected token `fi'
./script_1.sh: line 24: ` fi'
Kann mir das einer vielleicht erklären ?
Lesezeichen