On 2006-08-05 15:45:26 +1000, John O'Hagan wrote: > FILES=$( ls SOMEWHERE ) #or find or grep, etc > > for FILE in $FILES; do SOMETHING; done > > I often find that if there are spaces in the names of anything in > $FILES, the execution of SOMETHING occurs separately for each word > in the name, producing unexpected results. > > Quoting doesn't seem to help. Are there ways to deal with this?
Use zsh: $ zsh -f ay% ls -1 ab cd ef gh ay% for file in *; do printf "File: %s\n" $file; done File: ab cd File: ef gh With find, you have the -print0 option, that is safe. Note that solutions based on the \n separator will not always work as filenames can also contains this character. -- Vincent Lefèvre <[EMAIL PROTECTED]> - Web: <http://www.vinc17.org/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/> Work: CR INRIA - computer arithmetic / SPACES project at LORIA -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]