im running a while loop as a file watcher, with incremental counter on the retries..however when the retries reach it's limit i want it exit and echo and error and stop the batch. Im not sure the code i have will do that already...
Here is what i have that works:
#!/usr/bin/ksh
count=0
while [ $count -lt 3 ]
do
count=`expr $count + 1`
echo "Try $count"
RUNDATE=`date "+%h%e"`
filedate=`xyz.txt | awk '{print $6,$7}`
if [ "$Spotfiledate" != "$RUNDATE" ]
then
echo "File's date is $Spotfiledate and today's date is $RUNDATE. They don't match"
echo "I will sleep 30 seconds and try again; 3 tries is my limit"
sleep 30
else echo "Today's file $Spotfiledate is now in."
echo "Sleeping 30 secs to allow it to process."
sleep 30
break
fi
Just put a comment after the loop, meaning all retries have been done.
#!/usr/bin/ksh
count=0
while [ $count -lt 3 ]
do
count=`expr $count + 1`
echo "Try $count"
RUNDATE=`date "+%h%e"`
filedate=`xyz.txt | awk '{print $6,$7}`
if [ "$Spotfiledate" != "$RUNDATE" ]
then
echo "File's date is $Spotfiledate and today's date is $RUNDATE. They don't match"
echo "I will sleep 30 seconds and try again; 3 tries is my limit"
sleep 30
else echo "Today's file $Spotfiledate is now in."
echo "Sleeping 30 secs to allow it to process."
sleep 30 # maybe this sleep is not necessary
exit 0
fi
done
echo "Error, maximum number of retries reach!!"