본문 바로가기
기술자료/Shell Script

2차원 배열 쉘 스크립트 shell script programming 2D 2 Dimensional Array

by 와이즈캣 2021. 6. 25.
728x90
반응형

정확하진 않지만 쉘 스크립트는 2차원 배열은 지원하지 않는 것 같습니다.
bash의 경우는 지원하지 않는다는 글을 읽어 보았는데
다른 쉘의 경우도 그러한지는 모르겠네요.

하여 아래처럼 1차원 배열을 2차원처럼 사용하는 코드를 작성해 보았습니다.

#!/bin/bash

array1=(11 12 13 14 15)
array2=(21 22 23 24 25)
array3=(31 32 33 34 35)
array4=(41 42 43 44 45)
array5=(51 52 53 54 55)

array=(array1 array2 array3 array4 array5)
for((i=0; i<${#array[*]}; ++i))
do
	Line=${array[i]}[*]	# 1. 문자열 생성 : 1차원 배열명+[*] 
	#Line=${array[i]}[*]
	#Line=${array[0]}[*]
	#Line=  array1   [*]
	#Line="array1[*]"

	Line=(${!Line})		# 2. 실제 이름으로 전환 후 배열화
	#Line=(${!Line})
	#Line=(${array1[*]})
	#Line=(11 12 13 14 15)

	for ((j=0; j<${#Line[*]}; ++j))
	do
		printf "${Line[j]} "
	done
	echo
done

echo ==============

for Temp in ${array[*]}
do
	Line="$Temp[*]"
	Line=(${!Line})
	for Temp2 in ${Line[*]}
	do
		printf "${Temp2} "
	done
	echo
done

위의 그림에서 Line 18의 설명은 아래 링크에 가면 볼 수 있습니다.
https://wowcat.tistory.com/3106

728x90