Spec-Zone.ru › Fish 3.5

case — условное выполнение блока команд

Синтаксис

switch VALUE
   [case [GLOB ...]
       [COMMAND ...]]
end

Описание

switch выполняет один из нескольких блоков команд в зависимости от того, совпадает ли указанное значение с одним из нескольких значений. case используется вместе с оператором switch для определения, какой блок должен быть выполнен.

Каждая команда case получает один или несколько параметров. Первая команда case с параметром, соответствующим строке, указанной в команде switch, будет выполнена. case параметры могут содержать подстановочные знаки. Их необходимо экранировать или заключить в кавычки, чтобы избежать расширения подстановочных знаков, используемых для имен файлов.

Обратите внимание, что в операторах case в fish нет прохода к следующему случаю. Выполняется только первый соответствующий случай.

Обратите внимание, что подстановки команд в операторе case будут вычисляться, даже если его тело не используется. Все подстановки, включая подстановки команд, должны быть выполнены до того, как значение может быть сравнено с параметром.

Пример

Допустим, $animal содержит имя животного. Тогда этот код его классифицирует:

switch $animal
    case cat
        echo evil
    case wolf dog human moose dolphin whale
        echo mammal
    case duck goose albatross
        echo bird
    case shark trout stingray
        echo fish
    # Note that the next case has a wildcard which is quoted
    case '*'
        echo I have no idea what a $animal is
end

Если приведенный выше код был запущен с $animal, установленным в whale, результатом будет mammal.

Если $animal было установлено в «банан», он напечатает «Я понятия не имею, что такое банан».

© 2022 fish-shell developers
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.5/cmds/case.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API