Spec-Zone.ru › Fish 3.7

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

Синтаксис

switch VALUE; [case [GLOB ...]; [COMMANDS ...]; ...] end

Описание

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

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

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

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

Обратите внимание, что подстановки команд в операторе 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
    case '*'
        echo I have no idea what a $animal is
end

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

© 2005-2009 Axel Liljencrantz, 2009-2023 fish-shell contributors
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.7/cmds/switch.html

Spec-Zone.ru

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