Am Donnerstag, den 03.02.2005, 20:55 +0100 schrieb Christian Knoke:
> On Thu, Feb 03, 2005 at 08:28:00PM +0100, Markus Schulz wrote:
> > Am Donnerstag, 3. Februar 2005 20:23 schrieb Christian Knoke:
> > > On Thu, Feb 03, 2005 at 07:19:18PM +0100, Thorsten Buss wrote:
> > > > Wenn ich zb diesen hier mache, und Dateien mit Blanks in dem
> > > > aktuellen Verz dann geht das nicht...
> > > >
> > > > for i in `find`; do cp $i /tmp; done
> > >
> > > *So* geht das grunds�tzlich nicht in bash. Der in-Parameter wird
> > > *immer* an Spaces aufgetrennt, und das kannst Du auch nicht
> > > abschalten.
> >
> > mittels Setzen der IFS Variable sollte sich das aber auf jeden anderen
> > Trenner �ndern lassen iirc.
>
> Jo, siehe word splitting in man bash.
>
> [EMAIL PROTECTED]:~$ a="1 2 3 4\ 5"
> [EMAIL PROTECTED]:~$ for i in $a ; do echo $i; done
> 1
> 2
> 3
> 4\
> 5
> [EMAIL PROTECTED]:~$ export IFS=""
> [EMAIL PROTECTED]:~$ for i in $a ; do echo $i; done
> 1 2 3 4\ 5
> [EMAIL PROTECTED]:~$
>
> Das wird aber nicht im Sinne des OP sein :)
Richtig, deshalb:
------------schnipsel-------------------
IFS_OLD="$IFS"
IFS="
"
# Die zweite Gaensef�schen m�ssen alleine in der Zeile stehen!!!!!!!!!!!!
# IFS ist jetzt vorruebergehend ein Zeilenumbruchzeichen!!!!!!!"
for i in `find`; do cp $i /tmp; done
# oderwasauchimmer
# Hier wird IFS wieder auf den orginal Wert zurueck gesetzt!
IFS="$IFS_OLD"
------------schnapsel-------------------
Dann funktioniert das und es klappt auch mit dem OP;-)
--
mfg Peter K�chler
To be is to do
Socrates
To do is to be
Satre
Do be do be do
Sinatra