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


Reply via email to