On Son, 15 Jul 2001 at 22:45 (+0200), Heinz W. Pahlke wrote:
danke, deine Shell-Loesung funktioniert. Anderes haette mich allerdings auch gewundert.
Jetzt hast du mich verlegen gemacht *rot werd und mit den Füßen scharr* ;-)
Bloss - ich verstehe sie nicht, trotz man bash.
Och, das kriegen wir schon hin.
Fangen wir oben an:
while read i; do
done
ist eine Schleife, die solange läuft, wie der read noch true
liefert. read liest von der Standardeingabe in eine Variable (die
ich i genannt habe. Man muss immer beachten, dass in der Shell bei
einer Variablen_zuweisung_ nie das $ vor den Variablen-Namen gesetzt
wird, nur dann, wenn der Variablen_inhalt_ abgefragt wird - wie z.
B. beim echo).
Ich tendiere bei kleinen Scripts zu kurzen Variablennamen (bei einer
Variablen namens Gruesse_an_meine_Magengeschwuere kriegt man
spätestens beim zweiten Tippen die Krätze ;-). Wenn es länger wird
und mehrere Variablen im Script auftauchen, sollten sie einen
sprechenden Namen kriegen.
Da bei einer Shell immer die Standard-I/O-Kanäle umgebogen werden
können, kann man also auch stdin statt vom Terminal aus einer Datei
lesen lassen. Also kann man den read aus einer Datei füttern, das
bewirkt die Eingabe-Umleitung:
while read i; do
done Aber ich sehe ein, dass diese Liste nicht dazu da ist, mir die bash
beizubringen. Also muss ich wohl doch losziehen, mir mal ein
vernuenftiges Buch zur Shellprogrammierung zu kaufen. Das, was ich
habe, ist doch nicht so doll, und auf dem Bildschirm lese ich laengere
Texte nur sehr ungern. Der Kofler ist recht gut und zum Probieren kann man sich immer die
rc-Scripts von SuSE nehmen. Da wird eigentlich eine ganze Menge von
dem, was die Bash kann, genutzt.
Die beste Methode zum Shell-Lernen ist IMHO immer noch das
Ausprobieren. Ich habe in meinem Home-Verzeichnis unter progs (da
liegen meine Projekte) ein tests-Verzeichnis, in das wandern so
Sachen wie das Teil oben. Dann schnappe ich mir irgendeine Datei aus
dem System und probiere rum.
Jan