声明:“附加属性只有在后续赋值后才会生效”

声明:“附加属性只有在后续赋值后才会生效”

来自 Bash 手册的declare命令:

使用-aor-A和复合赋值语法创建数组变量时,附加属性只有在后续赋值后才会生效。

这是什么意思?

我无法弄清楚

$ declare -ar arr=([1]=2, [2]=3)
$ declare -p arr
declare -ar arr='([1]="2," [2]="3")'

谢谢。

答案1

它所说的是,除了-a和之外的属性-A在第一次分配期间不会产生任何影响。

具有大写属性的示例:

$ declare -a -u array=( hello )
$ printf '%s\n' "${array[@]}"
hello
$ array+=( world )
$ printf '%s\n' "${array[@]}"
hello
WORLD

相关内容