problems using ls with for_in (SH)
Dan Nelson
dnelson at allantgroup.com
Thu Nov 8 20:53:16 PST 2007
In the last episode (Nov 08), Sdvtaker said:
> Im trying to get a file with all the md5 hashes of one directory. My
> initial script was this:
>
> #!/bin/sh
> for file in $(ls)
> do
> echo $file
> md5 $file
> done
>
> The problem is with the file names who contains "whitespaces" becouse
> the for_in passed each word as one iteration and not the full
> filename, I'd tried using -B in ls, but doesnt help.
There's no need to call ls at all. The shell can expand wildcards just
fine by itself:
for file in *
do
echo $file
md5 $file
done
but in your case, since md5 can take multiple filenames on its
commandline and prints the filename in its output:
md5 *
will suffice.
--
Dan Nelson
dnelson at allantgroup.com
More information about the freebsd-questions
mailing list