[linux-l] Cygwin - Schleife durch Pfade, die Leerzeichen enthalten
Christian Boulanger
c.boulanger at gmx.de
Do Mär 25 08:23:43 CET 2004
Super, vielen Dank für die Infos, Jens & Steffen!
Christian
> -----Original Message-----
> From: linux-l-admin at mlists.in-berlin.de
> [mailto:linux-l-admin at mlists.in-berlin.de] On Behalf Of
> Steffen Dettmer
> Sent: Thursday, March 25, 2004 12:00 AM
> To: linux-l at mlists.in-berlin.de
> Subject: Re: [linux-l] Cygwin - Schleife durch Pfade, die
> Leerzeichen enthalten
>
>
> * Jens Dreger wrote on Sun, Mar 21, 2004 at 18:56 +0100:
> > Das sieht auch eher seltsam aus. Ich dachte ja, dass Dein Problem
> > irgendwie an cygwin liegt, aber ein kurzer Test zeigt, dass
> sich die
> > bash da nicht viel anders verhaelt:
>
> Prima Posting, schöne Gegenüberstellung!
>
> > echo "A"; for x in /tmp/test1/*; do echo "\$x='$x'"; done echo "B";
> > for x in "/tmp/test1/*"; do echo "\$x='$x'"; done
> >
> > Wie man sieht, tut Fall 'A' von alleine das richtige.
>
> Ja, man sollte sich merken, was for da tut, und sich
> vielleicht "for file in * ;" merken. Das funktioniert eben
> einfach. Und "for "file file;" funktioniert auch (nimmt die
> Script-Parameter). Bei einer Variablen*zuweisung* wird eben
> nicht "noch einmal" evaluiert (selbst wenn "*" ein
> Backtickpaar erzeugt, passiert nichts weiter).
>
> Allerdings wird beim Bau einer Kommandozeile "zweimal"
> evaluiert: zuerst Variable gegen ihren Wert, dann
> Aufrufparameter durch Whitespacesuche. Mehr aber auch nicht
> (wenn $file='`date`' ist, und man "file $file" schreibt,
> kommt can't stat ``date`'...).
>
> Also entsteht /hier/ das Whitespace-"Problem" (und kein
> Leerzeichen-Problem, \n und \t sind genauso schlecht) - und
> hier muss man quoten.
>
> > Bei Fall 'E' habe ich mal IFS auf "\n" gesetzt (damit das
> > IFS aendern hilft in solchen Faellen mit Leerzeichen in Dateinamen
> > immer.
>
> ... bloss hilft nicht, wenn man Zeilenvorschübe in Dateinamen
> hat! Ja, ich versteh auch überhaupt nicht, warum man
> Zeilenverschübe in Dateinamen packen kann, aber es gibt
> solche Files. Möglicherweise entsteht sowas auch durch "Bugs"
> in anderen Scripten. Also lieber richtig quoten :-)
>
> oki,
>
> Steffen
>
> --
> Dieses Schreiben wurde maschinell erstellt,
> es trägt daher weder Unterschrift noch Siegel.
> _______________________________________________
> linux-l mailing list
> linux-l at mlists.in-berlin.de
> Die Mailingliste der BeLUG (Berliner Linux User Group)
>
> Wenn du diese Mailingliste abbestellen willst, gehe bitte
> auf https://mlists.in-berlin.de/mailman/listinfo/linux-l
> und trage dich dort bitte aus
>
>
Mehr Informationen über die Mailingliste linux-l