아래 코드에서 배열 길이는 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
bash에서 배열에 추가하는 구문은 다음과 같습니다 (예 : ${new_element}
기존 배열에 저장된 요소를 추가하려는 경우 ${array[@]}
).
array=("${array[@]}" "${new_element}")
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다