adsense_in_article_test


리눅스 bash 스크립트에서 변수/배열/연관배열 삭제/초기화 리눅스 bash script

리눅스 bash 스크립트에서 변수 또는 배열을 삭제하는 명령은 unset이다. 우선 변수에 대해서 아래의 예시를 보자.

# 문자열 "abc"를 변수 var에 할당
var="abc"

# 변수 var에 할당된 내용 출력
echo "$var"
abc

# 변수 var 삭제
unset var

# 변수 var에 할당된 내용 출력
echo "$var"

unset에서 지정하는 변수명 앞에 "$" 표시가 붙지 않는다는 점에 유의. 만약 "$"를 붙이면 해당 변수명이 아니라 변수에 할당된 값이 unset의 인자(argument)로 지정되기 때문이다.

배열에 대한 삭제/초기화 작업도 같은 요령이다.

우선, 리눅스 bash 스크립트에서 배열(array)을 활용하는 기본적인 방법은 이전 게시물을 참고하자. 여기로

연관배열(associative array)에 대한 기본적인 내용은 여기로

# x[1]에 abc, x[2]에 def 저장
x[1]="abc"
x[2]="def"


# 저장된 내용 확인
echo "${x[1]} ${x[2]}"
abc def

위의 예시에 대해 배열의 인덱스(index) 또는 키(key)를 출력(관련 내용은 여기로)해 보면 1과 2가 나와야 할 것이다.

# 배열의 인덱스/키 출력
echo ${!x[*]}
1 2

이제 unset 명령으로 x[1]을 삭제해 보자.

# x[1] 삭제
unset x[1]

다시 배열의 인덱스를 출력해 보면 x[1]이 사라졌음을 알 수 있다.

# 배열의 인덱스/키 출력
echo ${!x[*]}
2

인덱스를 문자열로 지정할 수 있는 연관배열도 마찬가지다.

# 연관배열 선언
declare -A xa

# 문자열 할당
xa[apple]="abc"
xa[orange]="def"


# 인덱스 확인
echo "${!xa[*]}"
apple orange

# xa[apple] 삭제
unset xa[apple]

# 인덱스 확인
echo "${!xa[*]}"
orange

배열 전체를 삭제/초기화하고 싶다면 for 반복문을 활용하면 되겠다.

# xa 전체 삭제
for idx in `echo "${!xa[*]}"`
do
  unset xa[$idx]
done



덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.


B-Side


adsense(w160_h600)2

통계 위젯 (화이트)

681767
4519
2078658

2019 대표이글루_IT

Google Analytics