switch — условное выполнение блока команд
Синтаксис
switch VALUE; [case [GLOB ...]; [COMMANDS ...]; ...] end
Описание
switch выполняет один из нескольких блоков команд в зависимости от того, совпадает ли заданное значение с одним из нескольких значений, заданных с использованием шаблонов. case используется совместно с switch оператором для определения того, какой блок необходимо выполнить.
Каждая case команда получает один или несколько параметров. Первая case команда с параметром, соответствующим строке, указанной в команде switch, будет выполнена. case параметры могут содержать шаблоны. Их необходимо экранировать или заключить в кавычки, чтобы избежать обычного расширения шаблонов с использованием имён файлов.
Обратите внимание, что в fish нет перехода к следующему случаю в операторах 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.6/cmds/switch.html