Per Jessen wrote:
Dominique Leuenberger wrote:
On 4/21/2009 at 11:37, Per Jessen
wrote: Dominique Leuenberger wrote:
Hi,
I'm busy writing a script that does 'something' with every file found.
It does something like:
for a in $( find /mnt/Data/Todo -type f -exec basename {} \; ); do /usr/bin/stcommand $a /usr/bin/2ndcommand $a done
The problem here is simply: it works only as long as the filename does not contain any whitechars :(
Is there a good way to get around this?
Put $a in double qoutes.
Per, that solution was to easy and of course is not true (the original script actually has them quoted)
The problem happens in line for a already where 'for' is splitting the array of chars at the white chars.
I guess it I didn't take enough time to read through everything, sorry. How about this slightly changed script: (not tested)
find /mnt/Data/Todo -type f -exec basename {} \; | while read a do /usr/bin/stcommand $a /usr/bin/2ndcommand $a done
Rather, set -f find /path/to/stuff -type f | while read do { a="${REPLY##*/}" something "$a" else "$a" }