我想在此bash3地图中将louis
的值修改为green
:
ARRAY=( "nicolas:red"
"louis:blue" )
我试图用ARRAY+=("louis:green")
覆盖,但它不起作用:我最终得到一个带有重复键的3元素数组。
注意:我无法使用bash4的现代地图,所以我必须使用bash3 associative arrays。
答案 0 :(得分:1)
这只是一个常规(整数)索引数组。您将不得不迭代它以找到要替换的正确索引。 (这也适用于添加新元素,因为索引将超过现有数组的末尾。)
for ((i=0; i<${#ARRAY[*]}; i++)); do
[[ ${ARRAY[i]} = louis:* ]] && break
done
ARRAY[i]=louis:green