rename — 명령 이름 바꾸기 또는 삭제

rename — 명령 이름 바꾸기 또는 삭제

이미 정의된 명령의 이름을 바꾸고 싶을 때가 있어요. 아니면 어떤 명령을 완전히 없애고 싶을 수도 있고요. rename은 그 두 가지를 모두 해 주는 명령이에요. 특히 기존 명령을 감싸서 동작을 관찰하거나 확장하는 용도로 자주 쓰여요.

출처: 문서

본문

문법

rename oldName newName

동작 방식

rename은 예전에 oldName이라고 불리던 명령을 이제 newName으로 불리도록 바꿔요.

newName이 빈 문자열이면 oldName은 삭제돼요.

oldNamenewName은 네임스페이스 한정자(포함 네임스페이스의 이름)를 포함할 수 있어요.

명령이 다른 네임스페이스로 이름이 바뀌면, 이후의 호출은 새 네임스페이스에서 실행돼요.

rename 명령은 결과로 빈 문자열을 반환해요.

예제

rename은 표준 Tcl 명령을 자체 감시 장치로 감싸는 데 사용할 수 있어요. 예를 들어 source 명령이 몇 번 호출되는지 세고 싶다고 해 봐요:

rename ::source ::theRealSource
set sourceCount 0
proc ::source args {
    global sourceCount
    puts "called source for the [incr sourceCount]'th time"
    uplevel 1 ::theRealSource $args
}

이렇게 하면 실제 source::theRealSource로 옮겨 두고, 새 ::source를 정의해서 호출 횟수를 세면서 원래 동작을 그대로 이어서 수행하게 돼요.

더 알아보기

  • namespace: 네임스페이스와 명령 이름 규칙
  • proc: 프로시저 정의