Bash의 다차원 배열

MD Aminul Islam 2023년6월20일
  1. Bash에서 다차원 배열을 선언하는 기본 방법
  2. Bash에서 연관 배열을 사용하여 2차원 배열 선언
Bash의 다차원 배열

다차원 배열은 모든 프로그램에서 매우 중요한 요소입니다. 주로 데이터의 테이블 뷰를 생성하고 다른 많은 목적을 위해 사용됩니다.

이 문서에서는 2차원 배열을 만드는 방법을 보여 줍니다. 또한 필요한 예와 설명으로 주제를 논의합니다.

여기서는 두 가지 다른 방법에 대해 설명합니다.

Bash에서 다차원 배열을 선언하는 기본 방법

다차원 배열을 만드는 가장 기본적인 방법입니다. 아래 예제에서는 매우 기본적인 2차원 배열을 만듭니다.

아래는 예제 코드입니다.

ArrayOfArray_1=("Alen" "24")
ArrayOfArray_2=("Walker" "31")
MainArray=(
  ArrayOfArray_1[@]
  ArrayOfArray_2[@]
)

ArrayLength=${#MainArray[@]}
for ((i=0; i<$ArrayLength; i++))
do
  name=${!MainArray[i]:0:1}
  age=${!MainArray[i]:1:1}
  echo "Name : ${name}"
  echo "Age : ${age}"
done

위의 코드는 ArrayOfArray_1ArrayOfArray_2라는 두 개의 서로 다른 배열을 선언했음을 보여줍니다. 그 후, 우리는 우리가 최근에 선언한 이 두 개의 배열을 요소로 하는 기본 배열을 선언했습니다.

그런 다음 루프의 배열 길이를 계산했습니다. 루프 내에서 기본 배열을 인덱싱하여 이 두 하위 배열에서 데이터를 추출합니다.

마지막으로 최종 결과를 반향합니다. 스크립트를 실행하면 아래와 같은 출력이 표시됩니다.

Name : Alen
Age : 24
Name : Walker
Age : 31

Bash에서 연관 배열을 사용하여 2차원 배열 선언

이 방법은 약간 복잡합니다. 이 방법은 연관 배열이라는 특수 Bash 스크립트 배열에 대해 설명합니다.

연관 배열은 문자열 값을 키 또는 인덱스로 저장할 수 있는 특수 배열입니다. 다른 프로그래밍 언어와 비슷합니다.

연관 배열을 선언하기 위한 일반 구문은 declare -A ArrayName입니다.

아래 예제는 5개의 행과 6개의 열을 포함하는 2D 배열을 생성합니다. 아래는 예제 코드입니다.

declare -A Array2D
RowNum=5
ColumnNum=6

for ((i=1;i<=RowNum;i++)) do
    for ((j=1;j<=ColumnNum;j++)) do
        Array2D[$i,$j]=$RANDOM
    done
done

f1="%$((${#RowNum}+1))s"
f2=" %9s"

printf "$f1" ''
for ((i=1;i<=RowNum;i++)) do
    printf "$f2" $i
done
echo

for ((j=1;j<=ColumnNum;j++)) do
    printf "$f1" $j
    for ((i=1;i<=RowNum;i++)) do
        printf "$f2" ${Array2D[$i,$j]}
    done
    echo
done

위의 예에서 Array2D라는 연관 배열을 선언했습니다.

그런 다음 두 개의 변수를 만들고 정수 값을 할당했습니다. 이 정수 값은 행과 열의 수를 지정합니다.

그런 다음 배열을 난수로 채우는 중첩 루프를 만들었습니다.

이제 배열 선언 및 구성이 끝났습니다. 2D 배열이 어떻게 생겼는지 확인할 시간입니다.

코드에서 볼 수 있듯이 일부 루프를 사용하여 이를 수행합니다. 위의 스크립트를 실행하면 아래와 같은 출력이 표시됩니다.

           1         2         3         4         5
 1     16700      5241      2599     24330      1662
 2     23264     19557     10425     13413     25606
 3     17987      4199     13598     23897     26734
 4     24420     27830     24855      8165     13531
 5     15495     18790     13347     12947     11826
 6     23458     22838       137     32454     32441

이 문서의 모든 코드는 Bash로 작성되었습니다. Linux Shell 환경에서만 작동합니다.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

관련 문장 - Bash Array