rename — 명령 이름 바꾸기 또는 삭제
rename — 명령 이름 바꾸기 또는 삭제
이미 정의된 명령의 이름을 바꾸고 싶을 때가 있어요. 아니면 어떤 명령을 완전히 없애고 싶을 수도 있고요. rename은 그 두 가지를 모두 해 주는 명령이에요. 특히 기존 명령을 감싸서 동작을 관찰하거나 확장하는 용도로 자주 쓰여요.
출처: 문서
본문
문법
rename oldName newName
동작 방식
rename은 예전에 oldName이라고 불리던 명령을 이제 newName으로 불리도록 바꿔요.
newName이 빈 문자열이면 oldName은 삭제돼요.
oldName과 newName은 네임스페이스 한정자(포함 네임스페이스의 이름)를 포함할 수 있어요.
명령이 다른 네임스페이스로 이름이 바뀌면, 이후의 호출은 새 네임스페이스에서 실행돼요.
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: 프로시저 정의