PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage : Shell Script - Schleifen



tsluga
23-10-2005, 14:16
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 :



#!/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 :



# Abarbeiten der Parameter

for i
do
adressbook=`echo "$adressbook" | grep "$i"`
done
echo "$adressbook"
exit 0
fi


Wieso kann ich das nicht so machen :



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 ?

peschmae
23-10-2005, 15:36
Besser du erklärst mir wass das fi dort überhaupt zu suchen hat. Ich sehe weder in der drittletzten Zeile noch ganz am Ende irgendwas was nach einem fi schreit (fi beendet ein if, aber da ist kein angefangenes if?)

MfG Peschmä

tsluga
23-10-2005, 16:35
Das ist wohl wahr, da war zuerst ein if, dann habe ich es mit for gemacht, das fi ist ein da wohl noch irgendwie geblieben, das erklärt so einiger, danke für den kleinen Tipp.

peschmae
23-10-2005, 20:37
Sag mal: Die erste Variante - ergibt die bei dir keinen Syntaxfehler?

Habs jetzt eben mal versucht und bei mir sagt der "line x: syntax error near unexpected token `fi'"

MfG Peschmä