A.8 Lösungen zu Kapitel 12
Namen in Arrays
Schreiben Sie ein C-Shell-Skript, das zwei Namen einliest und diese in einem Array speichert. Das Array soll mithilfe der foreach-Schleife ausgegeben werden.
Antwort:
Listing A.8 Einlesen von zwei Namen und Ausgeben mit foreach
#!/bin/csh
echo -n "Bitte geben Sie den ersten Namen ein: "
set nameA = $<
echo -n "Bitte geben Sie den zweiten Namen ein: "
set nameB = $<
set arr = ($nameA $nameB)
echo "Sie haben folgende Namen eingegeben:"
foreach name($arr)
echo -n "${name}, "
end
echo ""
Erweiterung: Beliebige Parameterzahl
Erweitern Sie das erstellte Skript um die Möglichkeit, so viele Namen einzulesen, wie der Benutzer wünscht, und geben Sie nach der Ausgabe der Namen auch die Gesamtzahl der eingelesenen Namen aus.
Antwort:
Listing A.9 Einlesen beliebig vieler Namen
#!/bin/csh
set weiter = "y"
set namen = ()
while ($weiter == "y")
echo -n "Name: "
set namen = ($namen $<)
echo -n "Einen weiteren Namen einlesen? (y/n) "
set weiter = $<
end
echo "Sie haben folgende Namen eingegeben:"
@ zaehler = 0
foreach name($namen)
echo -n "${name}, "
@ zaehler ++
end
echo ""
echo "Insgesamt: $zaehler Namen"
Listing A.10 Ausgabe des Skripts
% /tmp/cshtest.csh
Name: Bello
Einen weiteren Namen einlesen? (y/n) y
Name: Hasso
Einen weiteren Namen einlesen? (y/n) y
Name: Rex
Einen weiteren Namen einlesen? (y/n) n
Sie haben folgende Namen eingegeben:
Bello, Hasso, Rex,
Insgesamt: 3 Namen
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.