在下面的代码中,数组长度为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
答案 0 :(得分:1)
在bash中,附加到数组的语法是(假设我们要将${new_element}
中存储的元素附加到现有数组${array[@]}
):
array=("${array[@]}" "${new_element}")