[TriLUG] BASH oddity
Paul G. Szabady
Paul at ThyService.com
Tue Feb 21 21:15:40 EST 2006
Thanks all, I think this example/workaround will suffice for what I need
to do.
--
Paul
@ Thy Service
> On 2/21/06, G.Wolfe Woodbury <ggw at wolves.durham.nc.us> wrote:
>> On Tue, Feb 21, 2006 at 06:02:10PM -0500, Paul G. Szabady wrote:
>> > That's what I thought, but other non-octal combinations work.
>> >
>> > IE
>> >
>> > [paul at at paul]$ declare -i dirx=88 ; echo $dirx
>> > 88
>> > [paul at at paul]$
>>
>> The leading '0' digit trigger the octal interpretation. There are
>> special cases in the code for 09 but 08 seems to have escaped someone's
>> notice. The library spec says that 08 should be correctly interpreted.
>>
>> might be worth filing a bug with your distributions bug site.
>
> Not sure which library spec you're talking about, but bash seems to be
> working as designed if it rejects a constant of 08, and if its
> accepting 09 then THAT's a bug.
>
> Bash on my Ubuntu/debian system doesn't like either 08 or 09 as an
> arithmethic literal. And I don't believe that it should. Here's the
> relevant paragraph from man bash:
>
> Constants with a leading 0 are interpreted as octal numbers. A
> leading 0x or 0X denotes hexadecimal. Otherwise, numbers take the
> form [base#]n, where base is a decimal number between 2 and 64
> representin the arithmetic base, and n is a number in that base. If
> base# is omitted, then base 10 is used. The digits greater than
> 9 are represented by the lowercase letters, the uppercase letters, @,
> and _, in that order. If base is less than or equal to 36, lowercase
> and uppercase letters may be used inter$B!>(Bchangeably to represent
> numbers between 10 and 35.
>
> So here's a way to get around the problem:
>
> rick at bill:~$ declare -i dirx=10#$(date +%V)
> rick at bill:~$ echo $dirx
> 8
>
> declare -i dirx=10#$(date +%V)
> --
> TriLUG mailing list : http://www.trilug.org/mailman/listinfo/trilug
> TriLUG Organizational FAQ : http://trilug.org/faq/
> TriLUG Member Services FAQ : http://members.trilug.org/services_faq/
>
More information about the TriLUG
mailing list