[Top][All Lists]

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

Re: Error in bash documentation for builtin declare

From: Chet Ramey
Subject: Re: Error in bash documentation for builtin declare
Date: Fri, 6 Nov 2020 12:06:30 -0500
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.4.0

On 11/6/20 11:53 AM, Edouard Thiel wrote:
> Le 06/11/2020 à 17:01, Greg Wooledge a écrit :
>> On Fri, Nov 06, 2020 at 02:07:36PM +0100, Edouard Thiel wrote:
>>> there is an error in the bash documentation:
>>>      https://www.gnu.org/software/bash/manual/bash.html#Bash-Builtins
>>> In the 'declare' builtin, option '-n',  last sentence:
>>>      "The nameref attribute cannot be applied to array variables"
>>> is actually wrong: it can be applied to indexed and associative arrays
>>> (since bash 4.3+)
>>> (tested for bash version : 4.3.48(1)-release (x86_64-pc-linux-gnu))
>> The relevant section in the 5.0 man page under PARAMETERS says:
>>    Array variables cannot be given the nameref attribute.  However,
>>    nameref variables can  reference  array  variables and  subscripted
>>    array  variables.
>> What, exactly, did you test?
> This is more clear, and in fact, ok for me (if subscripted means
> associative?);
> the link above is not up to date.

The same language appears in the "Shell Parameters" section of the manual
at the above link, just as it does in the "PARAMETERS" section of the
manual page.

> By the way, I have seen that the nameref works more or less for functions:
> $ foo() { echo "hello" ;}
> $ declare -n bar=foo
> but the reference has to be dereferenced when calling:
> $ ${!bar}
> hello
> is it still the case in bash 5?

Sure, it seems harmless to allow it.

``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    chet@case.edu    http://tiswww.cwru.edu/~chet/

reply via email to

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