H.S. <[EMAIL PROTECTED]>: > Frank Terbeck wrote: > >> b) it breaks on filenames with spaces (and other special characters). >> While newlines and other special characters might be rather weird >> for filenames, spaces are perfectly okay and normal in filenames. >> Using 'for i in `ls *`'-type loops breaks this and is one of the >> main reasons why people think spaces are bad in filenames. >> (They are not bad, some people just do not know how to handle >> them properly.) > > I usually get by this problem by enclosing the variable in double quotes > within the for loop. A basic example: > > $> for f in *.jpg; do ls "$f"; done
Yeah, you are using the for-loop construct absolutely right. I was arguing about for i in `ls *.jpg` ; do whatever "$i" ; done And you are, of course, right, that in POSIX shells, parameters should be double-quoted when used in almost every case, unless you know that you want splitting by $IFS. Regards, Frank -- In protocol design, perfection has been reached not when there is nothing left to add, but when there is nothing left to take away. -- RFC 1925 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]