bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: V+=1 doesn't work if V is a reference to an integer array element


From: Léa Gris
Subject: Re: V+=1 doesn't work if V is a reference to an integer array element
Date: Wed, 13 Jan 2021 19:11:37 +0100
User-agent: Telnet/1.0 [tlh] (PDP11/DEC)

Le 13/01/2021 à 18:49, Greg Wooledge écrivait :
On Wed, Jan 13, 2021 at 07:00:42PM +0200, Oğuz wrote:
     $ declare -n b=a[0]

I can't see any documentation that supports the idea that this should
be allowed in the first place.

               -n     Give  each  name  the nameref attribute, making it a name
                      reference to another variable.  That  other  variable  is
                      defined  by  the  value of name.  All references, assign‐
                      ments, and attribute modifications to name, except  those
                      using  or changing the -n attribute itself, are performed
                      on the variable referenced by name's value.

In at least three places there, it says that that "target" of the
name reference is a variable.  a[0] isn't a variable.


Even more weirdness:

echo $BASH_VERSION
5.0.17(1)-release

unset a b
declare -ai a=(1)
declare -in b="a[0]"
declare -p a b
declare -ai a=([0]="1")
declare -in b="a[0]"
b+=1
declare -p a
declare -ai a=([0]="3")
b+=1
declare -p a
declare -ai a=([0]="7")
b+=0
declare -p a
declare -ai a=([0]="14")

--
Léa Gris




reply via email to

[Prev in Thread] Current Thread [Next in Thread]