0

我想在这个 bash3 映射中修改louisto的值:green

ARRAY=( "nicolas:red"
    "louis:blue" )

我试图覆盖ARRAY+=("louis:green")但它不起作用:我最终得到一个带有重复键的 3 元素数组。

注意:我不能使用 bash4 的现代地图,所以我必须使用bash3 关联数组

4

1 回答 1

1

这只是一个常规(整数)索引数组。您必须对其进行迭代以找到要替换的正确索引。(这也适用于添加新元素,因为索引将超过现有数组的末尾。)

for ((i=0; i<${#ARRAY[*]}; i++)); do
    [[ ${ARRAY[i]} = louis:* ]] && break
done
ARRAY[i]=louis:green
于 2012-07-30T03:55:40.103 回答