在下面的代码中,第二个插入关联数组'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)
答案 0 :(得分:2)
你确实在这一行覆盖了数组:
originators=( ["$count"]="$tmp1" )
应该改为:
originators+=( ["$count"]="$tmp1" )
此+=
运算符会将新值附加到数组中。