Bash에서 배열을 사용하는 방법

Bash에서 배열을 사용하는 방법

2022-09-16 last update

5 minutes reading BASH Programming
모든 프로그래밍 언어에서 단일 변수를 사용하여 여러 데이터를 사용하려면 배열 변수를 사용해야 합니다. 배열 변수를 사용하여 데이터 목록을 할당하고 사용할 수 있습니다. Bash는 변수 선언을 위해 데이터 유형을 정의할 필요가 없는 약한 유형의 언어입니다. bash의 배열 선언은 다른 표준 프로그래밍 언어와 약간 다릅니다. bash에서는 두 가지 유형의 배열을 선언할 수 있습니다. 숫자 배열과 연관 배열. 배열의 인덱스가 숫자이면 숫자 배열, 배열의 인덱스가 문자열이면 연관 배열이라고 합니다. for 루프를 사용하여 숫자 배열, 연관 배열 및 배열 요소를 반복하는 방법은 이 자습서의 예제와 함께 설명됩니다.

예-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 배열을 적절하게 사용할 수 있습니다.