2018-02-05 17:22:04 +03:00
|
|
|
|
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<html>
|
|
|
|
|
<head>
|
|
|
|
|
<title>unknown</title>
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<h1>unknown</h1>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Команда <strong>unknown</strong> обрабатывает попытки обратиться к
|
|
|
|
|
несуществующей команде.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<h2>СИНТАКСИС</h2>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
<strong>unknown</strong> <em>cmdName</em> ?<em>arg</em> <em>arg</em>?
|
|
|
|
|
</pre>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<h2>ОПИСАНИЕ</h2>
|
|
|
|
|
|
|
|
|
|
<p>Интерпретатор Tcl выполняет эту команду каждый раз, когда
|
|
|
|
|
скрипт пытается обратиться к несуществующей команде. Исходный
|
|
|
|
|
вариант <strong>unknown</strong> не является функцией ядра Tcl;
|
|
|
|
|
напротив, это библиотечная процедура, определяемая по
|
|
|
|
|
умолчанию при запуске Tcl. Разработчик может переопределить
|
|
|
|
|
ее функциональность так, как ему нужно.</p>
|
|
|
|
|
|
|
|
|
|
<p>Когда Tcl находит имя команды, которому не соответствует ни
|
|
|
|
|
одной из существующих команд, тогда он проверяет наличие команды
|
|
|
|
|
<strong>unknown</strong>. Если команды <strong>unknown</strong> нет, то он
|
|
|
|
|
возвращает ошибку. Если такая команда обнаружена, то она будет
|
|
|
|
|
вызвана с аргументами, состоящими из имени и аргументов исходной
|
|
|
|
|
несуществующей команды, в которых выполнены все необходимые
|
|
|
|
|
подстановки.</p>
|
|
|
|
|
|
|
|
|
|
<p>Команда <strong>unknown</strong> обычно выполняет поиск по библиотечным
|
|
|
|
|
каталогам процедуры с именем <em>cmdName</em>, или поиск полного
|
|
|
|
|
имени команды, к которой обратились по сокращенному имени, или
|
|
|
|
|
автоматический запуск неизвестной команды как подпроцесса. При
|
|
|
|
|
успешном поиске полного имени команды команда <strong>unknown</strong>
|
|
|
|
|
заменяет имя на полное и вызывает команду с полным
|
|
|
|
|
именем. Результат работы команды <strong>unknown</strong> используется
|
|
|
|
|
вместо результата неопределенной команды.</p>
|
|
|
|
|
|
|
|
|
|
<p>Создаваемая по умолчанию процедура <strong>unknown</strong> выполняет
|
|
|
|
|
следующие действия.</p>
|
|
|
|
|
|
|
|
|
|
<p>Сначала она вызывает библиотечную процедуру <strong>auto_load</strong>
|
|
|
|
|
чтобы найти и загрузить соответствующую процедуру. Если это
|
|
|
|
|
удалось, то выполняется исходная команда с ее исходными
|
|
|
|
|
аргументами.</p>
|
|
|
|
|
|
|
|
|
|
<p>В противном случае вызывается процедура <strong>auto_execok</strong>
|
|
|
|
|
чтобы найти исполняемый файл с именем <em>cmdName</em>. Если файл
|
|
|
|
|
удалось найти, выполняется команда <a href=
|
|
|
|
|
exec.html><strong>exec</strong></a> с именем команды и ее
|
|
|
|
|
аргументами в качестве аргументов.</p>
|
|
|
|
|
|
|
|
|
|
<p>В противном случае проверяется, была ли неизвестная команда
|
|
|
|
|
вызвана на самом верхнем уровне вне какого-либо скрипта. Если
|
|
|
|
|
это было так, процедура <strong>unknown</strong> выполняет следующие
|
|
|
|
|
дополнительные действия: проверяется не имеет ли команда одну из
|
|
|
|
|
следующих форм:<strong>!!</strong>, <strong>!</strong>event, или
|
|
|
|
|
<strong>^</strong>old<strong>^</strong>new?<strong>^</strong>? и если да, то процедура
|
|
|
|
|
unknown выполняет для них подстановки по тем же правилам, что и
|
2015-10-19 13:27:31 +03:00
|
|
|
|
csh.</p>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>И при неудаче всех предыдущих попыток процедура <strong>unknown</strong>
|
|
|
|
|
проверяет, не является ли <em>cmdName</em> сокращением для
|
|
|
|
|
известной Tcl процедуры. Если так, то <em>cmdName</em> заменяется
|
|
|
|
|
на полное имя процедуры и она вызывается с исходными
|
|
|
|
|
аргументами.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Если же ни одна из попыток не привела к успеху, процедура
|
|
|
|
|
возвращает ошибку.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Если определена глобальная переменная <strong>auto_noload</strong>,
|
|
|
|
|
попытка загрузить процедуру с помощью <strong>auto_load</strong> не
|
|
|
|
|
производится.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Если определена глобальная переменная <strong>auto_noexec</strong>,
|
|
|
|
|
попытка загрузить процедуру с помощью <strong>auto_execok</strong> не
|
|
|
|
|
производится.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Если команду удалось найти, то процедура <strong>unknown</strong>
|
|
|
|
|
возвращает результат выполнения найденной команды.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</body>
|
|
|
|
|
</html>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
|