unset — 변수 삭제하기

unset — 변수 삭제하기

변수를 정리하고 싶을 때 쓰는 명령어가 unset이에요. 단순히 변수 하나를 지우는 것부터, 배열 원소 하나만 골라 지우거나 배열 전체를 통째로 지우는 것까지 할 수 있어요. 특별히 없다고 해서 오류가 나는 상황을 피하고 싶다면 -nocomplain 옵션도 있어요.

출처: 문서

본문

문법

unset ?-nocomplain? ?--? ?name name name ...?

이 명령어는 하나 이상의 변수를 제거해요. 각 nameset 명령어가 받아들이는 방식 중 아무 방식으로나 지정할 수 있는 변수 이름이에요.

  • name이 배열의 한 원소를 가리키면 그 원소만 제거되고 배열의 나머지는 그대로 남아요.
  • name이 괄호 인덱스 없이 배열 이름만으로 구성되면 배열 전체가 삭제돼요.

unset 명령어는 결과로 빈 문자열을 반환해요.

-nocomplain이 첫 인자로 지정되면 가능한 모든 오류가 억제돼요. 이 옵션은 가능한 변수 이름과 구분하기 위해 축약할 수 없어요. 옵션 --는 옵션의 끝을 나타내며, 옵션들 중 하나와 같은 이름을 가진 변수를 제거하려 할 때 사용해야 해요.

변수 삭제 중 오류가 발생하면, 오류를 일으킨 이름 뒤의 변수들은 삭제되지 않아요. 오류는 지명된 변수가 존재하지 않거나, 이름이 배열 원소를 가리키는데 실제로는 스칼라 변수이거나, 이름이 존재하지 않는 네임스페이스의 변수를 가리킬 때 발생할 수 있어요.

예제

어떤 숫자들을 제곱수에 매핑하는 배열을 만들고, 소수가 아닌 숫자들의 원소를 제거해요:

array set squares {
    1 1    6 36
    2 4    7 49
    3 9    8 64
    4 16   9 81
    5 25  10 100
}

puts "The squares are:"
parray squares

unset squares(1) squares(4) squares(6)
unset squares(8) squares(9) squares(10)

puts "The prime squares are:"
parray squares

더 알아보기

  • set, trace, upvar — 변수 관련 명령어
  • 관련 키워드: remove, variable