0

我在 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

但是之后我只得到了这个数组中的一个元素,有人可以帮我修复它吗?

4

2 回答 2

2

您需要声明关联数组而不是索引数组,因为您使用字符串/键作为索引。

索引数组使用整数(包括算术表达式)引用并且从零开始;使用任意字符串引用关联数组。

关联数组是使用 declare -A 名称创建的。

所以;

tencent=()

应该

declare -A tencent
于 2013-05-16T10:27:36.367 回答
1

当你声明你的变量tencent时,它是一个带有数字索引的经典数组。

您应该将其声明为关联数组以使其工作,如下所示:

declare -A tencent
于 2013-05-16T10:32:46.357 回答