Bash脚本中的数组长度为1

时间:2015-04-14 07:36:57

标签: linux bash

在下面的代码中,数组长度为1.

有人可以解释为什么,因为grep输出会显示在每个新行中,但是当它存储在数组中时,数组长度将为1.

如何显示读取数组的每一行?

#!/bin/bash

NUM=()
SHORT_TEXT=()
LONG_TEXT=()

#cat /tmp/dummy2 | 
while read NUM 
do
    LONG_TEXT+=$(grep $NUM -A4 RtpLogShm.Msg | grep -vi abate | grep ^LG)
    done < /tmp/dummy2

    #cat /tmp/dummy1 | 
    while read LINE
    do
        NUM+=$(echo $LINE | awk -F':' '{print $1}')
        SHORT_TEXT+=$(echo $LINE | awk -F':' '{print $2}')
        done < /tmp/dummy1

        printf "[%s]\n" "${LONG_TEXT[@]}"
    done
done

1 个答案:

答案 0 :(得分:1)

在bash中,附加到数组的语法是(假设我们要将${new_element}中存储的元素附加到现有数组${array[@]}):

array=("${array[@]}" "${new_element}")