我在bash中有一段这样的代码:
tencent=()
while read line
do
index=$(echo $line | awk '{printf "%s", $1}')
value=$(echo $line | awk '{printf "%s", $2}')
sindex="S_"$index
tencent[$sindex]=$value
done < $TENCENT_BILLS_MERGED但是之后我只得到了这个数组中的一个元素,有人能帮我解决这个问题吗?
发布于 2013-05-16 18:27:36
您需要声明关联数组,而不是索引数组,因为您使用字符串/键作为索引。
索引数组使用整数(包括算术表达式)引用,并且从零开始;关联数组使用任意字符串引用。
关联数组是使用declare -A name创建的。
因此;
tencent=()应该是
declare -A tencent发布于 2013-05-16 18:32:46
当您声明变量tencent时,它是一个带有数字索引的经典数组。
您应该将其声明为associative array以使其工作,如下所示:
declare -A tencenthttps://stackoverflow.com/questions/16583716
复制相似问题