[ILUG] Bash script misbehaving

Walter Faleiro curtorkar at gmail.com
Fri Aug 8 07:04:13 IST 2008


All,
We have a script to cleanup filesystem.
It contains the following lines in the code

#!/bin/bash

DAYSPERMONTH=("31" "29" "31" "30" "31" "30" "31" "31" "30" "31" "30" "31" )
CDSTAMP=`date '+%Y%m%d'`

bash-3.00# date '+%Y%m%d'
20080807


CURRENTYEAR=`echo $CDSTAMP | awk '{print substr($1,1,4)}'`


bash-3.00# echo $CDSTAMP | awk '{print substr($1,1,4)}'
2008



CURRENTDAY=`echo $CDSTAMP | awk '{print substr($1,7,2)}'`

bash-3.00# echo $CDSTAMP | awk '{print substr($1,7,2)}'
07



CURRENTMONTH=`echo $CDSTAMP | awk '{print substr($1,5,2)}'`

bash-3.00# echo $CDSTAMP | awk '{print substr($1,5,2)}'
08




Come August the error is
 line 37: 08: value too great for base (error token is "08")

I think the error is because of the month thats listed as 08 which might be
confusing the shell as if its an octal number.

Any remedy here, changing the way the script is used will mean fixing 10TB
of data naming convention :)



Thanks,
--Walter



More information about the ILUG mailing list