bug-bash
[Top][All Lists]
Advanced

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

'declare +a -g' destroys local arrays


From: Arfrever Frehtes Taifersar Arahesis
Subject: 'declare +a -g' destroys local arrays
Date: Thu, 22 Aug 2013 10:52:02 +0200
User-agent: KMail (GNU/Linux)

I use bash 4.2.45.

`man bash` says:
"Using `+' instead of `-' turns off the attribute instead, with the exceptions 
that +a may not be
used to destroy an array variable and +r will not remove the readonly 
attribute."

However 'declare +a -g' destroys local arrays, which do not shadow global 
arrays:

$ f() { local ARRAY=(a b c); declare -p ARRAY; declare +a -g ARRAY; declare -p 
ARRAY; }
$ f
declare -a ARRAY='([0]="a" [1]="b" [2]="c")'
bash: declare: ARRAY: cannot destroy array variables in this way
bash: declare: ARRAY: not found
$ ARRAY=(x y z)
$ f
declare -a ARRAY='([0]="a" [1]="b" [2]="c")'
bash: declare: ARRAY: cannot destroy array variables in this way
declare -a ARRAY='([0]="a" [1]="b" [2]="c")'

--
Arfrever Frehtes Taifersar Arahesis

Attachment: signature.asc
Description: This is a digitally signed message part.


reply via email to

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