Hi,
I have one system with:
[EMAIL PROTECTED]:~> bash --version
GNU bash, version 3.00.16(1)-release (i586-suse-linux)
Copyright (C) 2004 Free Software Foundation, Inc.
[EMAIL PROTECTED]:~> hallo=hallo
[EMAIL PROTECTED]:~> rr=r
[EMAIL PROTECTED]:~> tt="${rr:0:${#rr}-1}$hallo"
[EMAIL PROTECTED]:~> echo ${#tt}
5
This is what I expect. But in an newer bash:
[EMAIL PROTECTED]:~$ bash --version
GNU bash, version 3.1.17(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
[EMAIL PROTECTED]:~$ hallo=hallo
[EMAIL PROTECTED]:~$ rr=r
[EMAIL PROTECTED]:~$ tt="${rr:0:${#rr}-1}$hallo"
[EMAIL PROTECTED]:~$ echo ${#tt}
6
There is suddenly a 6th illegal character generated (in the original
routine its purpose was to remove the last character of $rr (which is
als at least one character long). But only if rr is one character
long - if it's longer all is fine again.
I circumvent the problem for now by removing the quotation marks:
[EMAIL PROTECTED]:~$ tt=${rr:0:${#rr}-1}$hallo
[EMAIL PROTECTED]:~$ echo ${#tt}
5
-- Reuti