118 lines
5.8 KiB
HTML
118 lines
5.8 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>
|
||
|