Package: bash
Version: 3.1-1

Hi,

please have a look at the following lines:

] [EMAIL PROTECTED]:~> echo $LOGNAME
] nordholz
] [EMAIL PROTECTED]:~> echo ${LOGNAME[0]}
] nordholz
] [EMAIL PROTECTED]:~> echo ${LOGNAME[$(( 0 ))]}
] nordholz
] [EMAIL PROTECTED]:~> echo ${LOGNAME[$(( 0*0 ))]}
] nordholz
] [EMAIL PROTECTED]:~> echo ${LOGNAME[$(( 0+0 ))]}
] nordholz

Ok, works as expected... but now:

] [EMAIL PROTECTED]:~> echo ${#LOGNAME[$(( 0 ))]}
] 8
] [EMAIL PROTECTED]:~> echo ${#LOGNAME[$(( 0*0 ))]}
] 8
] [EMAIL PROTECTED]:~> echo ${#LOGNAME[$(( 0+0 ))]}
] -bash: ${#LOGNAME[$(( 0+0 ))]}: bad substitution

Further testing proved that '*' and '**' are the only
accepted arithmetic operators in such an expansion...
is there a special reason for that?

I've confirmed this behaviour with the latest
stable (2.05b-26) and the current testing/unstable
version (3.1-1) of bash.

I'll try to research the problem ( == come up with
a patch), but my schedule is rather full, so I
can't make any promises.


Regards,

Jan

-- 
Jan C. Nordholz
<jckn At gmx net>

Attachment: signature.asc
Description: Digital signature

Reply via email to