Tom Badran wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> How can i use an if in a bash script so that it will only run commands if the 
> specified file is empty? 
> 
> Basically, ive set up a cache system by which the output of ifconfig is 
> stored in /var/cache/IP/1
> 
> Then, every minute my script is run. It first puts the output of ifconfig in 
> /var/cache/IP/2 and diff's it with 1 outputing that to a file 'diff'. I then 
> want to run a series of commands if the file diff is not empty.
>

Well first, you can test the exit value of diff to see if there
were differences:

if diff /var/cache/IP/1 /var/cache/IP/2; then
   #commands for when files are the same
else
   #commands for when files differ
fi

Or if you only care when they differ:

if ! diff /var/cache/IP/1 /var/cache/IP/2; then
   #commands for when files differ
fi

If you really need to test for empty files, try:

if [ -s filename ]; then
   #commands for when file is *not* empty
else
   #commands for when file is empty
fi

Or if you only care for the empty ones:

if [ ! -s filename ]; then
   #commands for when the file is empty
fi


                -Kyle


-- 
                                    _
-------------------------------ooO( )Ooo-------------------------------
Kyle J. McDonald                 (o o)         Systems Support Engineer
Sun Microsystems Inc.            |||||
Enterprise Server Products                        [EMAIL PROTECTED]
1 Network Drive BUR03-4630       \\\//          voice:   (781) 442-2184
Burlington, MA 01803             (o o)            fax:   (781) 442-1542
-------------------------------ooO(_)Ooo-------------------------------



Want to buy your Pack or Services from MandrakeSoft? 
Go to http://www.mandrakestore.com

Reply via email to