【发布时间】:2015-03-26 14:16:34
【问题描述】:
这行得通:
$ BAR=(a b c)
$ echo "${BAR[1]}"
b
然而,这不是:
$ declare -A FOO
$ FOO=(a b c)
bash: FOO: a: must use subscript when assigning associative array
bash: FOO: b: must use subscript when assigning associative array
bash: FOO: c: must use subscript when assigning associative array
文档声称下标是可选的:
使用
name=(value1 ... valuen)形式的复合赋值对数组进行赋值,其中每个值的形式为[subscript]=string。只需要string。
declare 的使用会改变这里数组赋值的语法吗?为什么用declare 暗示变量的类型会改变事情? (为什么declare 存在——如果我将一个数组分配给一个变量,那么该变量就是一个数组……不?)
【问题讨论】:
标签: arrays bash associative-array