27.08.2015 Views

Advanced Bash−Scripting Guide

Advanced Bash-Scripting Guide - Nicku.org

Advanced Bash-Scripting Guide - Nicku.org

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

#+ but better safe than sorry.<br />

if [ ! −r "$dbfile" ]<br />

then<br />

echo "Unable to read checksum database file!"<br />

exit $E_BAD_DBFILE<br />

fi<br />

# −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− #<br />

while read record[n]<br />

do<br />

directory_checked="${record[0]}"<br />

if [ "$directory_checked" != "$directory" ]<br />

then<br />

echo "Directories do not match up!"<br />

# Tried to use file for a different directory.<br />

exit $E_DIR_NOMATCH<br />

fi<br />

if [ "$n" −gt 0 ] # Not directory name.<br />

then<br />

filename[n]=$( echo ${record[$n]} | awk '{ print $2 }' )<br />

# md5sum writes records backwards,<br />

#+ checksum first, then filename.<br />

checksum[n]=$( md5sum "${filename[n]}" )<br />

fi<br />

<strong>Advanced</strong> <strong>Bash−Scripting</strong> <strong>Guide</strong><br />

if [ "${record[n]}" = "${checksum[n]}" ]<br />

then<br />

echo "${filename[n]} unchanged."<br />

else<br />

echo "${filename[n]} : CHECKSUM ERROR!"<br />

# File has been changed since last checked.<br />

fi<br />

let "n+=1"<br />

done

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!