[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