我想在这个louis映射中将green的值修改为bash3:
ARRAY=( "nicolas:red"
"louis:blue" )我试图用ARRAY+=("louis:green")覆盖,但它不起作用:我最终得到了一个带有重复键的3元素数组。
注:我不能使用bash4 4的现代地图,所以我必须使用https://stackoverflow.com/a/4444841/226958。
发布于 2012-07-30 03:55:40
这只是一个普通的(整数)索引数组。您必须对其进行迭代,以找到要替换的正确索引。(这也适用于添加新元素,因为索引将超过现有数组的末尾。)
for ((i=0; i<${#ARRAY[*]}; i++)); do
[[ ${ARRAY[i]} = louis:* ]] && break
done
ARRAY[i]=louis:greenhttps://stackoverflow.com/questions/11714849
复制相似问题