Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 4.2关联数组抛出;错误的数组下标";错误_Bash_Associative Array_Bash4 - Fatal编程技术网

Bash 4.2关联数组抛出;错误的数组下标";错误

Bash 4.2关联数组抛出;错误的数组下标";错误,bash,associative-array,bash4,Bash,Associative Array,Bash4,我正在尝试创建此关联数组,但由于volumeClaimTemplates[0] 这是我的代码: declare -A example=(["'spec.statefulSet.spec.volumeClaimTemplates[0].spec'"]="TEST") 这就是错误: ['spec.statefulSet.spec.volumeClaimTemplates[0].spec']=TEST: bad array subscript 如果我从vol

我正在尝试创建此关联数组,但由于
volumeClaimTemplates[0]

这是我的代码:

declare -A example=(["'spec.statefulSet.spec.volumeClaimTemplates[0].spec'"]="TEST")
这就是错误:

['spec.statefulSet.spec.volumeClaimTemplates[0].spec']=TEST: bad array subscript

如果我从
volumeClaimTemplates
中删除
[0]
,则不会出现错误。

让它这样工作

declare -A example=(["spec.statefulSet.spec.volumeClaimTemplates[0\].spec.storageClassName"]="TEST"

让它像这样工作

declare -A example=(["spec.statefulSet.spec.volumeClaimTemplates[0\].spec.storageClassName"]="TEST"

尝试转义方括号-即
\[0\]
。无法在bash 5.0中复制。请在
docker run bash:4.2中复制。我相信在较旧的bash版本中,数组下标仅限于某些字符集@这是一个问答论坛。你在帖子里没有问任何问题。本着这个论坛的精神,你能补充一个问题吗?似乎
]
字符是问题所在-
声明-A=([“]”“]=1)
是否尝试使用关联数组模拟嵌套对象?也许您应该使用已经有它们的语言。如果I
printf%q\\n“'spec.statefolset.spec.volumeClaimTemplates[0].spec'”
它会输出→ <代码>\'spec.statefulSet.spec.volumeClaimTemplates\[0\].spec\'
。我简单地引用关联数组键的方式如下:
declare-A example=([\'spec.statefulSet.spec.volumeClaimTemplates\[0\].spec\']=“TEST”)
尝试转义方括号-即
\[0\]
。无法在bash 5.0中复制。请在
docker运行bash:4.2
中复制。我相信在较旧的bash版本中,数组下标仅限于某些字符集@这是一个问答论坛。你在帖子里没有问任何问题。本着这个论坛的精神,你能补充一个问题吗?似乎
]
字符是问题所在-
声明-A=([“]”“]=1)
是否尝试使用关联数组模拟嵌套对象?也许您应该使用已经有它们的语言。如果I
printf%q\\n“'spec.statefolset.spec.volumeClaimTemplates[0].spec'”
它会输出→ <代码>\'spec.statefulSet.spec.volumeClaimTemplates\[0\].spec\'。我只想用同样的方式引用关联数组键:
declare-A-example=([\'spec.statefulSet.spec.volumeClaimTemplates\[0\].spec\']=“TEST”)