来自 Bash 手册的declare
命令:
使用
-a
or-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