On Tuesday 17 May 2005 16:55, linux.whiz@xxxxxxxxx wrote: > My brain is fried. I know there is a simple answer to this but I'm > drawing a blank. I want to run a script against the contents of a > text file. The text file is just my users' first name, middle initial > and last name like this: > > John A Smith > Mary P James > Sally R Jones > Fred Q Davis > > What I want to do is for each user in this file, run a script. I > tried to do this: > > for i in `cat textfile`; do > myscript.sh $i > done > > I expect this to run like this: > > myscript.sh John A Smith > myscript.sh Mary P James > myscript.sh Sally R Jones > myscript.sh Fred Q Davis > > Instead it runs like this: > > myscript.sh John > myscript.sh A > myscript.sh Smith > ... > etc. > > How do I get this script to run correctly? > > Thanks! > LW You get this behavior because the internal field separator by default recognizes spaces, tebs, etc as field separators. Try this instead (where names.lst is your file of names): exec < ./names.lst while read line do myscript.sh $line done