![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| check if file is empty | stolz | Shell Programming and Scripting | 8 | 03-22-2009 11:15 PM |
| How to check for empty file in Perl? | deepakwins | UNIX for Dummies Questions & Answers | 1 | 03-04-2008 03:00 PM |
| Check for empty string | rahman_riyaz | Shell Programming and Scripting | 12 | 01-24-2008 03:13 AM |
| Check for Empty Command Argument | Nysif Steve | UNIX for Dummies Questions & Answers | 6 | 09-19-2007 03:59 PM |
| How to check for null or empty string | doer | Shell Programming and Scripting | 5 | 07-24-2007 01:31 AM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|
|
||||
|
How can I make the for command check to see if a file is empty before executing?
Here is the command in question
Code:
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 |
|
||||
|
Well this is my actual script
Code:
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
Chris |
|
||||
|
This should work. Don't miss the terminating 'fi' toward the bottom.
Code:
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
|
![]() |
| Bookmarks |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|