On Sat, Feb 11, 2006 at 09:34:40PM +0000, Joerg Sommer wrote: > Das sollte an dieser Stelle kein Problem sein, da IFS nur für diesen > einen Befehl verbogen wird.
Das sollte nicht nur, das ist an der Stelle kein Problem, weil es "works as designed". > Aber eigentlich wird eine Variablenzuweisung (A=...) auch nicht als > Befehl angesehen. Eigentlich sollte es nicht funktionieren, aber es tut > es -- ich weiß nicht warum. Vielleicht eine Spezialität der Bash. Nein, keine "Spezialität der Bash" sondern eher ein ausbaubares Verständnis der klassischen Bourne-Shells? ;-) Eine Bourne-Shell beachtet IFS beim Parsen von mittels "read" gelesenem Input, ebenso beim Parsen des Outputs einer "Command Substitution" (also Backquotes bzw. $(...) in der modernen Form) und bei der Substitution von Variablen. Und die rechte Seite bei Zuweisungen wird nach den Regeln der Variablensubstitution ausgewertet. Beispiele sind kein Beweis, aber trotzdem welche. Beide unter OSF/1 (bzw. True64 UNIX, oder wie immer es jetzt gerade heisst), um Linux-Spezifika zu vermeiden. Einmal eine klassische Bourne-Shell: $ IFS=. A="foo.bar.baz" $ for w in $A ; do echo $w; done foo bar baz Die POSIX-konforme Shell dort: /usr/bin/posix/sh $ IFS=. A="foo.bar.baz" $ for w in $A ; do echo $w; done foo bar baz Die Manpage der Bourne-Shell meint: IFS The characters that are internal field separators (the characters that the shell uses during interpretation of spaces, see Interpretation of Spaces). The shell initially sets IFS to include the space, tab, and newline characters. Interpretation of Spaces After the shell performs variable and command substitution, it scans the results for internal field separators (those defined in the IFS shell variable, see Variables Used by the Shell). It splits the line into distinct words at each place it finds one of these characters. POSIX mag da[1] etwas anderes zu sagen, aber wenn ich versuche POSIX-Standards zu lesen, brauche ich anschliessend immer ein Aspirin und bin meist nicht wirklich schlauer als vorher. ;-/ --jc [1] http://www.opengroup.org/onlinepubs/007908799/xcu/chap2.html#tag_001_006_005 -- In zweifelhaften Fällen entscheide man sich für das Richtige. -- Karl Kraus (1874-1936) -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)