Info

Материал из Egghelp.ru - TCL/TK Eggdrop Wiki
Перейти к: навигация, поиск
Команда сообщает сведения о состоянии интерпретатора Tcl.

СИНТАКСИС

info option ?arg arg…?

ОПИСАНИЕ

Эта команда обеспечивает доступ к внутренней информации Tcl-интерпретатора. Ниже перечислены поддерживаемые опции (имена которых могут быть сокращены).

info args procname

Возвращает список имен аргументов процедуры procname в том порядке, в котором они определены при описании процедуры. Аргумент procname должен содержать имя Tcl-процедуры.

Пример

 proc testProc { arg1 text key somethingElse } { }
 # Вернет "arg1 text key somethingElse"
 info args testProc

info body procname

Возвращает тело процедуры procname. Аргумент procname должен содержать имя Tcl-процедуры.

Пример

 proc test { } {
   set a 1
 }
 # Вернет "set a 1"
 info body test

info cmdcount

Возвращает полное число команд, введенных в данный интерпретатор.

info commands ?pattern?

Если аргумент pattern не задан, возвращает полный список команд в текущем пространстве имен, включая как встроенные команды, написанные на C, так и процедуры, заданные с помощью команды proc. Если аргумент pattern задан, возвращается список только тех имен, которые удовлетворяют шаблону pattern. Правила использования шаблонов такие же, как в команде string match. Шаблон может быть полным именем, например Foo::print*. То есть он может задавать определенное пространство имен и шаблон в нем. В этом случае каждая команда в возвращаемом списке будет представлена полным именем с указанием пространства имен.

info complete command

Возвращает "1", если команда command есть завершенная Tcl-команда, то есть не содержит "незакрытых" кавычек, квадратных или фигурных скобок и имен массивов. В противном случае возвращается "0". Эта команда обычно используется при построчном вводе команд пользователем для того, чтобы позволить ему вводить команды из нескольких строк. Для этого, если введенный скрипт не представляет собой законченную команду, его исполнение откладывается до завершения следующей строки.

info default procname arg varname

Аргумент procname должен быть именем Tcl-процедуры, а аргумент arg - именем одного из аргументов этой процедуры. Если указанный аргумент не имеет значения по умолчанию, команда возвращает "0". В противном случае команда возвращает "1" и помещает значение по умолчанию в переменную varname.

info exists varName

Возвращает "1", если переменная varName существует в текущем контексте как локальная или как глобальная переменная. В противном случае возвращает "0".

Пример

 set a 1
 # Вернет 1
 info exists a
 # Вернет 0
 info exists nonExistentVariable
 set a(defined) 1
 set b "defined"
 # Вернет 1
 info exists a($b)
 # Вернет 0
 info exists a(somethingElse)

info globals ?pattern?

Если аргумент pattern не задан, возвращает список имен определенных в данный момент глобальных переменных (переменных, определенных в глобальном пространстве имен). Если шаблон задан, возвращаются только имена, удовлетворяющие шаблону. Правила использования шаблонов такие же, как в команде string match.

info hostname

Возвращает имя компьютера, на котором выполняется этот вызов.

info level ?number?

Если аргумент number не задан, возвращает уровень стека выполняемой процедуры, или "0", если команда выполняется на верхнем уровне. Если аргумент number указан, команда возвращает список, состоящий из имени и аргументов процедуры, находящейся в стеке вызовов на соответствующем месте. Если number положительное число, оно указывает номер уровня в стеке ("1" - самая верхняя вызванная процедура, "2" - процедура, вызванная из процедуры "1", и так далее), если же number отрицательное, оно указывает уровень относительно уровня выполняемой процедуры ("0" - выполняемая процедура, "-1" - процедура, из которой вызвана исполняемая, и так далее). Более подробно уровни стека описаны в uplevel.

info library

Возвращает имя каталога, в котором хранятся стандартные Tcl-скрипты. Обычно совпадает со значением переменной tcl_library и может быть изменено с помощью переопределения этой переменной. Дополнительная информация приведена в tclvars.

info loaded ?interp?

Возвращает список библиотек (package), загруженных в интерпретатор с помощью команды load. Каждый элемент списка представляет собой подсписок из двух элементов: имени файла и имени библиотеки. Для статически загруженных библиотек имя файла отсутствует. Если имя интерпретатора interp отсутствует, возвращается список всех библиотек, загруженных во все интерпретаторы. Чтобы получить список библиотек, загруженных в текущий интерпретатор, используйте пустую строку в качестве аргумента interp.

info locals ?pattern?

Если образец не задан, возвращает имена всех определенных в текущий момент локальных переменных, включая аргументы процедуры, если они есть. Переменные, заданные с помощью команд global и upvar, не возвращаются. Если шаблон задан, возвращаются только имена, удовлетворяющие шаблону. Правила использования шаблонов такие же, как в команде string match.

info nameofexecutable

Возвращает полное имя бинарного файла, с помощью которого приложение было запущено. Если Tcl не может определить файл, возвращается пустая строка.

info patchlevel

Возвращает значение глобальной переменной tcl_patchLevel. См. также раздел tclvars.

info procs ?pattern?

Если аргумент pattern не задан, возвращает полный список Tcl-процедур в текущем пространстве имен. Если аргумент pattern задан, возвращается список только тех имен, которые удовлетворяют шаблону pattern. Правила использования шаблонов такие же, как в команде string match.

info script

Если в данный момент обрабатывается Tcl-скрипт (например, вызванный с помощью команды source), то команда возвращает имя файла, содержащего самый внутренний обрабатываемый скрипт. В противном случае возвращает пустую строку.

info sharedlibextension

Возвращает расширение, используемое на текущей платформе для файлов разделяемых библиотек (например, .so для Solaris). Если разделяемые библиотеки на текущей платформе не поддерживаются, возвращает пустую строку.

info tclversion

Возвращает значение глобальной переменной tcl_version. Дополнительная информация приведена в tclvars.

info vars ?pattern?

Если аргумент pattern не задан, возвращает список имен всех видимых в текущий момент переменных, включая локальные и видимые глобальные. Если аргумент pattern задан, возвращается список только тех имен, которые удовлетворяют шаблону pattern. Правила использования шаблонов такие же, как в команде string match. Шаблон может быть полным именем, например Foo::option*. То есть он может задавать определенное пространство имен и шаблон в нем. В этом случае каждая команда в возвращаемом списке будет представлена полным именем с указанием пространства имен.