88 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 | ||
| <html>
 | ||
|   <head>
 | ||
|     <title>unknown</title>
 | ||
|   </head>
 | ||
|   <body>
 | ||
|     <h1>unknown</h1>
 | ||
| 
 | ||
|     <p>Команда <strong>unknown</strong> обрабатывает попытки обратиться к
 | ||
|       несуществующей команде.</p>
 | ||
| 
 | ||
|     <h2>СИНТАКСИС</h2> 
 | ||
| 
 | ||
|     <pre>
 | ||
|       <strong>unknown</strong> <em>cmdName</em> ?<em>arg</em> <em>arg</em>?
 | ||
|     </pre>
 | ||
| 
 | ||
|     <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 выполняет для них подстановки по тем же правилам, что и
 | ||
|       csh.</p>
 | ||
| 
 | ||
|     <p>И при неудаче всех предыдущих попыток процедура <strong>unknown</strong>
 | ||
|       проверяет, не является ли <em>cmdName</em> сокращением для
 | ||
|       известной Tcl процедуры. Если так, то <em>cmdName</em> заменяется
 | ||
|       на полное имя процедуры и она вызывается с исходными
 | ||
|       аргументами.</p>
 | ||
| 
 | ||
|     <p>Если же ни одна из попыток не привела к успеху, процедура
 | ||
|       возвращает ошибку.</p>
 | ||
| 
 | ||
|     <p>Если определена глобальная переменная <strong>auto_noload</strong>,
 | ||
|       попытка загрузить процедуру с помощью <strong>auto_load</strong> не
 | ||
|       производится.</p>
 | ||
| 
 | ||
|     <p>Если определена глобальная переменная <strong>auto_noexec</strong>,
 | ||
|       попытка загрузить процедуру с помощью <strong>auto_execok</strong> не
 | ||
|       производится.</p>
 | ||
| 
 | ||
|     <p>Если команду удалось найти, то процедура <strong>unknown</strong>
 | ||
|       возвращает результат выполнения найденной команды.</p>
 | ||
|   </body>
 | ||
| </html>
 | 
