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
signature.asc
Description: This is a digitally signed message part.