第二次插入到关联数组中的数据丢失

时间:2013-07-31 13:12:59

标签: arrays bash

在下面的代码中,第二个插入关联数组'originator',使第一个插入丢失。我检查第一个插入是成功的,但当我将第二个关联项放入'始发者'时,第一个项是空的,换句话说,它输出并清空字符串。我不知道会发生什么。

declare -A originators

    while read -r line
    do
        if [ "$count" -ge "2" ]; 
        then
            inner_count=0
            #parse each line
            if [ "$debug" = "1" ] ; then  printf "%s\n" "$line" ; fi

            for word in $line
            do 

                if [ "$inner_count" = "1" ]; then tmp1="$word" ; fi
                if [ "$inner_count" = "5" ]; then tmp1="$tmp1"" ---- ""$word" ;fi 
                inner_count=$((inner_count + 1)) 
            done    
                originators=( ["$count"]="$tmp1" )
            echo "$count  ${originators["$count"]}"

        fi
    count=$((count + 1))
    done < <(batctl tg)

1 个答案:

答案 0 :(得分:2)

你确实在这一行覆盖了数组:

originators=( ["$count"]="$tmp1" )

应该改为:

originators+=( ["$count"]="$tmp1" )

+=运算符会将新值附加到数组中。