【问题标题】:Array Length is 1 in Bash scriptingBash 脚本中的数组长度为 1
【发布时间】:2018-03-27 02:36:33
【问题描述】:

在下面的代码中,数组长度为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

【问题讨论】:

标签: linux bash


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-03
    • 2014-10-17
    • 2012-01-01
    • 1970-01-01
    • 2018-02-27
    • 2011-08-22
    • 2016-04-23
    相关资源
    最近更新 更多