#!/bin/bash YEAR=1978 MONTH=6 DAY=19 REALYEAR=78 REALMONTH=06 REALDAY=19 function getit { wget http://images.ucomics.com/comics/ga/$YEAR/ga$REALYEAR$REALMONTH$REALDAY.gif -O $YEAR-$REALMONTH-$REALDAY.gif } function isleapday { if [ "$(($YEAR %4))" = "0" ]; then echo $REALYEAR-$REALMONTH-$REALDAY getit fi } function fixmonth { if [ "$MONTH" = "13" ]; then let MONTH=1 REALMONTH=0$MONTH fi } function addmonth { let MONTH=MONTH+1 if [ $MONTH -lt 10 ]; then REALMONTH=0$MONTH else REALMONTH=$MONTH fi } function fixday { if [ "$DAY" = "$1" ]; then let DAY=1 REALDAY=0$DAY fi } function addday { let DAY=DAY+1 if [ $DAY -lt 10 ]; then REALDAY=0$DAY else REALDAY=$DAY fi } function daycycle { while [ $DAY -le $1 ]; do getit echo $REALYEAR-$REALMONTH-$REALDAY addday done fixday $(($1+1)) } while [ $YEAR -le 2006 ]; do REALYEAR=${YEAR:2} mkdir $YEAR cd $YEAR while [ $MONTH -le 12 ]; do if [ "$MONTH" = "4" ]; then while [ $DAY -le 28 ]; do getit echo $REALYEAR-$REALMONTH-$REALDAY addday done isleapday fixday 29 elif [ "$MONTH" = "1" ] || [ "$MONTH" = "3" ] || [ "$MONTH" = "5" ] || [ "$MONTH" = "7" ] || [ "$MONTH" = "8" ] || [ "$MONTH" = "10" ] || [ "$MONTH" = "12" ]; then daycycle 31 else daycycle 30 fi addmonth done fixmonth cd .. let YEAR=YEAR+1 done