117 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 | ||
| <html>
 | ||
|   <head>
 | ||
|     <title>switch</title>
 | ||
|   </head>
 | ||
|   <body>
 | ||
|     <h1>switch</h1>
 | ||
| 
 | ||
|     <p>Команда выполняет один из нескольких скриптов в зависимости
 | ||
|       от полученного значения.</p>
 | ||
| 
 | ||
|     <h2>СИНТАКСИС</h2> 
 | ||
| 
 | ||
|     <pre>
 | ||
|       <strong>switch</strong> ?<em>options</em>? <em>string</em> <em>pattern</em> <em>body</em> ?<em>pattern</em> <em>body</em>...?
 | ||
|       <strong>switch</strong> ?<em>options</em>? <em>string</em> {<em>pattern</em> <em>body</em> ?<em>pattern</em> <em>body</em>...?}
 | ||
|     </pre>
 | ||
| 
 | ||
|     <h2>ОПИСАНИЕ</h2> 
 | ||
| 
 | ||
|     <p>Команда <strong>switch</strong> сравнивает аргумент <em>string</em> по
 | ||
|       очереди с каждым из образцов, заданных аргументами
 | ||
|       <em>pattern</em>. Если строка <em>string</em> соответствует
 | ||
|       очередному образцу, выполняется соответствующий скрипт
 | ||
|       <em>body</em> и команда возвращает результат его выполнения. Если
 | ||
|       последний из образцов равен <em>default</em>, то ему соответствует
 | ||
|       любая строка. Если строка не соответствует ни одному из образцов
 | ||
|       (что значит, в частности, что образец <em>default</em>
 | ||
|       отсутствует), то никакой скрипт не выполняется и команда
 | ||
|       возвращает пустое значение. </p>
 | ||
| 
 | ||
|     <p>Если один или несколько первых аргументов команды начинаются с
 | ||
|       <strong>-</strong>, они считаются опциями команды.  Возможные опции
 | ||
|       перечислены ниже.</p>
 | ||
| 
 | ||
|     <dl>
 | ||
| 
 | ||
|       <dt><strong>-exact</strong></dt>
 | ||
| 
 | ||
|       <dd>Строка считается соответствующей образцу, только если она в точности
 | ||
| 	с ним совпадает. Этот режим используется по умолчанию.</dd>
 | ||
| 
 | ||
|       <dt><strong>-glob</strong></dt>
 | ||
| 
 | ||
|       <dd>При сравнении строки с образцом используются те же правила,
 | ||
| 	что и в команде <strong>string match</strong>.</dd>
 | ||
| 
 | ||
|       <dt><strong>-regexp</strong><dt>
 | ||
| 
 | ||
|       <dd>При сравнении строки с образцом используются те же правила,
 | ||
| 	что и в команде <a href="regexp.html"><strong>regexp</strong></a>.</dd>
 | ||
| 
 | ||
|       <dt><strong>--</strong></dt>
 | ||
| 
 | ||
|       <dd>Обозначает конец опций. Следующий аргумент считается строкой
 | ||
| 	<em>string</em>, даже если он начинается с символа
 | ||
| 	<strong>-</strong>.</dd>
 | ||
|     </dl>
 | ||
| 
 | ||
|     <p>Команда предполагает использование одной из двух синтаксических
 | ||
|       форм для задания образцов и скриптов. Первая использует
 | ||
|       отдельные аргументы для каждого образца и скрипта.  Эта форма
 | ||
|       удобна при необходимости выполнить подстановки в образцах и/или
 | ||
|       скриптах. Во второй форме все они помещаются в один аргумент,
 | ||
|       который должен быть списком. Элементами этого списка должны
 | ||
|       быть, соответственно, образцы и скрипты. Эта форма более удобна
 | ||
|       для длинных команд, не размещающихся в одной строке, поскольку
 | ||
|       она не требует использовать обратный слэш в конце каждой
 | ||
|       строки. Но при ее использовании необходимо учитывать, что,
 | ||
|       поскольку список содержится в фигурных скобках, подстановки
 | ||
|       команд и переменных в образцах и скриптах не
 | ||
|       производятся. Вследствие этого результат выполнения команды,
 | ||
|       записанной в различных формах, может различаться.</p>
 | ||
| 
 | ||
|     <p>Если один из аргументов <em>body</em> равен <strong>-</strong>, это
 | ||
|       означает, что при совпадении строки с данным образцом будет
 | ||
|       выполняться скрипт <em>body</em> для следующего образца. Если для
 | ||
|       следующего образца скрипт также равен <strong>-</strong>, то будет
 | ||
|       использован скрипт для следующего за ним образца и т.д.</p>
 | ||
| 
 | ||
|     <p>Ниже приведены примеры использования команды
 | ||
|       <strong>switch</strong>.</p>
 | ||
| 
 | ||
|     <p>Команда</p>
 | ||
|     <pre>
 | ||
|       switch abc a - b {format 1} abc {format 2} default {format 3}
 | ||
|     </pre>
 | ||
|     <p>вернет значение 2.</p>
 | ||
| 
 | ||
|     <p>Команда</p>
 | ||
|     <pre>
 | ||
|       switch -regexp aaab {
 | ||
|       	^a.*b$ -
 | ||
|         b {format 1}
 | ||
|         a* {format 2}
 | ||
|         default {format 3}
 | ||
|       }
 | ||
|     </pre>
 | ||
|     <p>вернет значение 1.</p> 
 | ||
| 
 | ||
|     <p>А команда</p>
 | ||
|     <pre>
 | ||
|       switch xyz {
 | ||
|       	a
 | ||
|         -
 | ||
|         b
 | ||
|         {format 1}
 | ||
|         a*
 | ||
|         {format 2}
 | ||
|         default
 | ||
|         {format 3}
 | ||
|       }
 | ||
|     </pre>
 | ||
|     <p>вернет значение 3.<p>
 | ||
|   </body>
 | ||
| </html>
 | 
