[ILUG] Bash script misbehaving

John Allen john.allen at dublinux.net
Fri Aug 8 13:42:02 IST 2008


Kieran Tully wrote:
> On 2008-08-08, Proinnsias Breathnach <proinnsias at project-bob.org> wrote:
>
>   
>> However, what is line 37 doing / trying to do? - as you say, it sounds
>> like it's trying to parse it as octal. (based on the error message)
>>     
>
> Yes, it would be useful to see line 37!
>
> I ran into this exact issue in a bash script where
>  printf %0.2d $MONTH
> was being used to pad single digit months with leading zeroes.
>
> As $MONTH was already padded it was interpreted as octal.
>   
MONTH=08
# strip any leading 0's before formatting
printf "%0.2d\n" "`echo $MONTH | sed 's|^[0]\+||g'`"
> The solution was to use month in a string context, i.e.
>  printf %s $MONTH
>
> (obviously the printf was doing more than this, or we could have used echo).
>   




More information about the ILUG mailing list