Linux Bash脚本中的数组长度为1
在下面的代码中,数组长度为1 有人能解释为什么grep输出会显示在每一行中,但当它存储在数组中时,数组长度将为1 如何显示读取数组的每一行Linux Bash脚本中的数组长度为1,linux,bash,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/
#!/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
#/bin/bash
NUM=()
短文本=()
长文本=()
#cat/tmp/dummy2|
当读取NUM时
做
LONG_TEXT+=$(grep$NUM-A4 RtpLogShm.Msg | grep-vi abate | grep^LG)
完成
在bash中,附加到数组的语法是(假设我们希望将存储在${new_element}
中的元素附加到现有数组${array[@]}
):
您没有将LONG_测试创建为数组-请参阅本文了解如何将结果存储为数组-
array=("${array[@]}" "${new_element}")