bash programming - 배열에 대해서

bash는 1차원 배열만 지원한다. 인덱스는 0부터 시작하며 정수값만 사용할 수 있다. 인덱스가 반드시 0부터 시작해야 하는건 아니며 연관 배열처럼 사용할 수도 있다.

declare -a name 명령을 사용해서 배열을 선언할 수도 있으며 declare -a 명령을 사용하면 현재 선언되어 있는 모든 배열변수를 볼 수 있다.

# 네 개의 요소를 가지는 배열 선언
names=(e0 e1 e2 e3)

# 첫번째 엘리먼트를 출력
echo ${names[0]}

# 인덱스값을 넣지 않으면 0번째 엘리먼트를 출력
echo ${names}

# 배열 요소의 개수
echo ${#names[*]}

# n번째 엘리먼트의 글자수를 구하려면
echo ${#names[n]}

# 0번째 엘리먼트의 글자수를 구하려면
echo ${#names}

# 인덱스가 2 이상인 엘리먼트들을 출력
echo ${names[*]:2}

# 인덱스가 1 이상인 엘리먼트 두개만 출력
echo ${names[*]:1:2}

# 엘리먼트 추가
names=(${names(*)} e4 e5 e6)

# 엘리먼트 삭제
unset names[2]



[*]과 [@]는 따옴표(") 안에서 서로 다르게 동작한다.

books=(java cpp js sql css)

mybooks=("${books[*]}")
yourbooks=("${books[@]}")
 
# declare -a 실행 결과
declare -a books='([0]="java" [1]="cpp" [2]="js" [3]="sql" [4]="css")'
declare -a mybooks='([0]="java cpp js sql css")'
declare -a yourbooks='([0]="java" [1]="cpp" [2]="js" [3]="sql" [4]="css")'

http://www.gnu.org/software/bash/manual/bashref.html#Arrays



댓글

이 블로그의 인기 게시물

미적분과 차원

apache rewrite_module 로그

자바 로깅