How can I make the for command check to see if a file is empty before executing?

Here is the command in question

for f in $(<uploads); do

.

I only want this to execute if uploads is not empty. If uploads is empty I want the script to quit, actually before the for command. If its not apparent uploads is a text file.

Chris

Use the 'test' command to check if the file has size.

For example, this will print each word in the file on a separate line.

if test -s uploads ; then for f in $(<uploads); do echo $f; done; fi

Well this is my actual script

dir=/home/httpd/vhosts/chris*/web_users/chris2
email=info@domain.com
hours=6

let t=$hours*60
cd $dir

find . ! -name '.*'  -type f -cmin "-$t" > holder
cut -c 3-70 holder > uploads
for f in $(<uploads); do s=`echo ${PWD##*/}/$f`; z=`ls -la "$f" | awk '{ printf("%10d\n", $5)}'`; x=`ls -la "$f"| awk '{printf $6}'`;w=`ls -la "$f" | awk '{printf $7}'`;q=`ls -la "$f" | awk '{printf $8}'`;y=`md5sum "$f"| awk '{print $1}'`;
#echo -e "$s\t\t$z\t$x\t$y"
printf "%-30s%+12s %3s %-2s %-6s%-1s\n" $y $z $x $w $q $s  >> status
done
mail -s "Uploads!" -c "$email" susant <  status
cat status

rm -rf status
rm -rf holder
rm -rf uploads

How can I intergrate something like that before my for command?

Chris

This should work. Don't miss the terminating 'fi' toward the bottom.

dir=/home/httpd/vhosts/chris*/web_users/chris2
email=info@domain.com
hours=6

let t=$hours*60
cd $dir

find . ! -name '.*'  -type f -cmin "-$t" > holder
cut -c 3-70 holder > uploads
if test -s uploads ; then
for f in $(<uploads); do s=`echo ${PWD##*/}/$f`; z=`ls -la "$f" | awk '{ printf("%10d\n", $5)}'`; x=`ls -la "$f"| awk '{printf $6}'`;w=`ls -la "$f" | awk '{printf $7}'`;q=`ls -la "$f" | awk '{printf $8}'`;y=`md5sum "$f"| awk '{print $1}'`;
#echo -e "$s\t\t$z\t$x\t$y"
printf "%-30s%+12s %3s %-2s %-6s%-1s\n" $y $z $x $w $q $s  >> status
done
mail -s "Uploads!" -c "$email" susant <  status
cat status

rm -rf status
fi
rm -rf holder
rm -rf uploads

Nathan