
Bash에서 배열을 사용하는 방법
2022-09-16 last update
5 minutes reading BASH Programming모든 프로그래밍 언어에서 단일 변수를 사용하여 여러 데이터를 사용하려면 배열 변수를 사용해야 합니다. 배열 변수를 사용하여 데이터 목록을 할당하고 사용할 수 있습니다. Bash는 변수 선언을 위해 데이터 유형을 정의할 필요가 없는 약한 유형의 언어입니다. bash의 배열 선언은 다른 표준 프로그래밍 언어와 약간 다릅니다. bash에서는 두 가지 유형의 배열을 선언할 수 있습니다. 숫자 배열과 연관 배열. 배열의 인덱스가 숫자이면 숫자 배열, 배열의 인덱스가 문자열이면 연관 배열이라고 합니다. for 루프를 사용하여 숫자 배열, 연관 배열 및 배열 요소를 반복하는 방법은 이 자습서의 예제와 함께 설명됩니다.
배열의 기본 인덱스는 숫자이며 모든 값은 문자열 값으로 사용됩니다. 5개의 문자열 값으로 구성된 간단한 숫자 배열이 여기에 선언됩니다. echo 명령은 여기에서 각 배열 값을 개별적으로 인쇄하는 데 사용됩니다. 단일 echo 명령으로 배열의 모든 값을 인쇄하려면 배열 인덱스에 "*"기호를 사용해야 합니다. bash 스크립트에서 배열을 선언하는 두 가지 방법을 보여주는 다음 스크립트를 사용하여 bash 파일을 만듭니다.
위의 스크립트를 실행하면 다음 출력이 나타납니다.

배열의 각 인덱스는 연관 배열에서 별도로 선언해야 합니다. bash에서 연관 배열의 사용을 알기 위해 다음 스크립트를 사용하여 bash 파일을 만듭니다. 다음 예제에서는 4개 요소의 연관 배열을 선언합니다. 배열의 값은 앞의 예와 같이 각 인덱스를 별도로 사용하여 출력할 수 있습니다. "!"를 사용하여 연관 배열의 인덱스만 인쇄할 수 있습니다. 및 "@"기호.
위의 스크립트를 실행하면 다음 출력이 나타납니다.

모든 bash 배열의 총 요소 수는 다음 예제의 첫 번째 부분에 표시된 "#"및 "*"기호를 사용하여 계산할 수 있습니다. 루프를 사용하여 배열 값을 읽는 방법을 알기 위해 다음 스크립트로 bash 파일을 만듭니다. For 루프는 일반적으로 배열의 값을 반복하는 데 사용됩니다. for 루프를 사용하여 배열 값과 배열 인덱스를 별도로 읽을 수도 있습니다. 다음 예제에서는 다른 루프를 사용하여 배열 인덱스, 배열 값 및 둘 다를 읽습니다.
위의 스크립트를 실행하면 다음 출력이 나타납니다.

새 요소는 다양한 방법으로 배열에 추가할 수 있습니다. 속기 연산자(+=)를 사용하여 하나 이상의 요소를 추가하는 방법이 이 예제에 나와 있습니다. 새 요소를 배열에 삽입하는 방법을 알기 위해 다음 스크립트를 사용하여 bash 파일을 만듭니다.
위의 스크립트를 실행하면 다음 출력이 나타납니다.

'unset' 명령은 배열에서 하나 또는 모든 요소를 삭제하는 데 사용됩니다. 숫자 배열에서 하나 및 모든 요소를 삭제하는 방법을 알아보려면 다음 스크립트를 사용하여 bash 파일을 만드십시오.
위의 스크립트를 실행하면 다음 출력이 나타납니다.

배열에 여러 단어의 문자열 값을 추가하려면 배열 값을 큰따옴표("")로 묶어야 합니다. 연결된 배열이 여러 단어의 문자열 값으로 초기화된 다음 스크립트를 사용하여 bash 파일을 만듭니다.
위의 스크립트를 실행하면 다음 출력이 나타납니다.

배열은 많은 목적으로 프로그래밍에 사용됩니다. 이 튜토리얼에서는 bash에서 배열을 사용하는 몇 가지 일반적이고 매우 간단한 방법을 보여줍니다. 위의 예제를 실행하면 bash 사용자를 위해 bash 배열의 기본 개념이 지워지고 스크립트에서 bash 배열을 적절하게 사용할 수 있습니다.
예-1: 숫자 배열 선언:
배열의 기본 인덱스는 숫자이며 모든 값은 문자열 값으로 사용됩니다. 5개의 문자열 값으로 구성된 간단한 숫자 배열이 여기에 선언됩니다. echo 명령은 여기에서 각 배열 값을 개별적으로 인쇄하는 데 사용됩니다. 단일 echo 명령으로 배열의 모든 값을 인쇄하려면 배열 인덱스에 "*"기호를 사용해야 합니다. bash 스크립트에서 배열을 선언하는 두 가지 방법을 보여주는 다음 스크립트를 사용하여 bash 파일을 만듭니다.
#!/bin/bash
MyArray=( HTML Javascript CSS JQuery Bootstrap )
# Print 5 values individually
echo "----------Print 5 values individually---------------"
echo ${MyArray[0]}
echo ${MyArray[1]}
echo ${MyArray[2]}
echo ${MyArray[3]}
echo ${MyArray[4]}
#Print all values by using *
echo "-----------------Print all values-------------------"
echo ${MyArray[*]}
산출:위의 스크립트를 실행하면 다음 출력이 나타납니다.

예-2: 연관 배열 선언:
배열의 각 인덱스는 연관 배열에서 별도로 선언해야 합니다. bash에서 연관 배열의 사용을 알기 위해 다음 스크립트를 사용하여 bash 파일을 만듭니다. 다음 예제에서는 4개 요소의 연관 배열을 선언합니다. 배열의 값은 앞의 예와 같이 각 인덱스를 별도로 사용하여 출력할 수 있습니다. "!"를 사용하여 연관 배열의 인덱스만 인쇄할 수 있습니다. 및 "@"기호.
#!/bin/bash
# Associative array declaration
declare -A MyArr
# Value Initialization
MyArr=( [mark]=79 [john]=93 [ella]=87 [mila]=83 )
# Print values
echo ${MyArr[mark]}
echo ${MyArr[john]}
echo ${MyArr[ella]}
echo ${MyArr[mila]}
#Print indexes
echo ${!MyArr[@]}
산출:위의 스크립트를 실행하면 다음 출력이 나타납니다.

예-3: for 루프를 사용하여 배열 값 읽기:
모든 bash 배열의 총 요소 수는 다음 예제의 첫 번째 부분에 표시된 "#"및 "*"기호를 사용하여 계산할 수 있습니다. 루프를 사용하여 배열 값을 읽는 방법을 알기 위해 다음 스크립트로 bash 파일을 만듭니다. For 루프는 일반적으로 배열의 값을 반복하는 데 사용됩니다. for 루프를 사용하여 배열 값과 배열 인덱스를 별도로 읽을 수도 있습니다. 다음 예제에서는 다른 루프를 사용하여 배열 인덱스, 배열 값 및 둘 다를 읽습니다.
#!/bin/bash
# Associative array declaration
declare -A MyArr
# Value Initialization
MyArr=( [os]=Windows [web]=PHP [db]=Oracle )
echo "Total number of elements=${#MyArr[*]}"
echo "Array values are"
for value in ${MyArr[@]}
do
echo $value
done
echo "Array indexes are"
for key in ${!MyArr[@]}
do
echo $key
done
echo "Array values and indexes:"
for key in ${!MyArr[*]}
do
echo "$key => ${MyArr[$key]}"
done
산출:위의 스크립트를 실행하면 다음 출력이 나타납니다.

예-4: 배열에 요소 추가
새 요소는 다양한 방법으로 배열에 추가할 수 있습니다. 속기 연산자(+=)를 사용하여 하나 이상의 요소를 추가하는 방법이 이 예제에 나와 있습니다. 새 요소를 배열에 삽입하는 방법을 알기 위해 다음 스크립트를 사용하여 bash 파일을 만듭니다.
#!/bin/bash
# Declare a numeric array
declare -a MyArr
# Initialize array with two elements
MyArr=( Ubuntu CentOS )
# Print total number of elements
echo "Total number of elements of the current array=${#MyArr[*]}"
# Add one element
MyArr+=(Fedora)
# Print total number of elements after adding one element
echo "Total number of elements after adding one element=${#MyArr[*]}"
# Add two elements
MyArr+=(RedHat LinuxMint)
# Print total number of elements after adding two elements
echo "Total number of elements after adding two elements=${#MyArr[*]}"
# Print all elements of the array
echo "Array elements are:"
echo "${MyArr[@]}"
산출:위의 스크립트를 실행하면 다음 출력이 나타납니다.

예-5: 배열에서 요소 삭제
'unset' 명령은 배열에서 하나 또는 모든 요소를 삭제하는 데 사용됩니다. 숫자 배열에서 하나 및 모든 요소를 삭제하는 방법을 알아보려면 다음 스크립트를 사용하여 bash 파일을 만드십시오.
#!/bin/bash
# Declare a numeric array
declare -a MyArr
# Initialize array with two elements
MyArr=(Dell HP Lenavo Acer Asus Avita )
# Print total number of elements
echo "Total number of elements of the current array=${#MyArr[*]}"
# Print array values before delete
echo "Array values before delete:"
echo "${MyArr[@]}"
# Delete fourth element
unset MyArr[3]
# Print total number of elements after deleting an element
echo "Total number of elements after deleting one element=${#MyArr[*]}"
# Print array values after delete
echo "Array values after deleting one element:"
echo "${MyArr[@]}"
# Delete all elements
unset MyArr
# Print array values after deleting all elements
echo "Array values after deleting all elements:"
echo "${MyArr[@]}"
산출:위의 스크립트를 실행하면 다음 출력이 나타납니다.

예-6: 여러 단어의 문자열 값 인쇄
배열에 여러 단어의 문자열 값을 추가하려면 배열 값을 큰따옴표("")로 묶어야 합니다. 연결된 배열이 여러 단어의 문자열 값으로 초기화된 다음 스크립트를 사용하여 bash 파일을 만듭니다.
#!/bin/bash
# Declare an associative array
declare -A MyArr
# Initialize the array with the string value of multiple words
MyArr=([cse-101]="Computer Fundamental" [cse-207]="Java Programming" [cse-312]="Web Programming")
# Print the array values of multiple words
echo "Array values are:"
for val in "${MyArr[@]}"; do
echo $val
done
산출:위의 스크립트를 실행하면 다음 출력이 나타납니다.

결론:
배열은 많은 목적으로 프로그래밍에 사용됩니다. 이 튜토리얼에서는 bash에서 배열을 사용하는 몇 가지 일반적이고 매우 간단한 방법을 보여줍니다. 위의 예제를 실행하면 bash 사용자를 위해 bash 배열의 기본 개념이 지워지고 스크립트에서 bash 배열을 적절하게 사용할 수 있습니다.