[쉘 스크립트] 배열
배열 선언 및 출력
쉘 스크립트의 배열은 () 안에 들어가며 문자열로 인식된다. 자동으로 인덱스가 0부터 붙기 시작한다.
arr이라는 배열이 있을 때, echo $arr
을 하면 첫번째 원소를 출력한다. n번째 원소를 선택하고 싶다면 ${arr[n]}
형식으로 사용하며, n자리에 @을 넣을 시 배열의 모든 원소를 의미한다.
#!/bin/sh
#arr.sh
arr=(A B C D 1 2 3 4)
echo "echo \$arr"
echo $arr
echo -e "\necho \${arr[3]}"
echo ${arr[3]}
echo -e "\necho \${arr[@]}"
echo ${arr[@]}
echo -e "\nfor문"
for i in ${arr[@]}
do
echo $i
done
exit 0
다른 문자열을 배열로 지정하거나, 명령어의 결과를 문자열로 지정할 수도 있다.
#!/bin/sh
#arr2.sh
arr1=(`date`)
echo "${arr1[@]}"
tmp="This is String"
arr2=($tmp)
echo -e "\n${arr2[@]}"
exit 0
다음과 같이 직접 인덱스별로 배열 원소값을 정의하여 불연속적인 배열을 만들 수도 있다.
#!/bin/sh
#arr4.sh
arr[0]="1"
arr[2]="2"
arr[4]="3"
for((i=0;i<5;i++))
do
echo "$i번째 원소:${arr[$i]}"
done
exit 0
원소 추가
배열에 += 을 사용하여 배열의 끝에 원소를 추가할 수 있다. 이 때, 추가되는 원소가 하나여도 ()로 배열화하여 추가해야 한다.
#!/bin/sh
#arr3.sh
arr=(1 2 3 4)
arr+=(5 6 7)
echo ${arr[@]}
exit 0
인덱스가 불연속적이여도 배열의 가장 끝에 추가된다.
#!/bin/sh
#arr4.sh
arr[0]="1"
arr[2]="2"
arr[4]="3"
arr+=(4)
for((i=0;i<6;i++))
do
echo "$i번째 원소:${arr[$i]}"
done
exit 0
댓글남기기