switch - условно выполнить блок команд
Синтаксис
switch VALUE; [case [GLOB ...]; [COMMANDS ...]; ...] end
Описание
switch выполняет один из нескольких блоков команд в зависимости от того, равно ли указанное значение одному из нескольких значений, заданных с помощью шаблонов. case используется вместе с оператором switch для определения, какой блок следует выполнить.
Каждой команде case передаётся один или несколько параметров. Первая команда case с параметром, который соответствует строке, указанной в команде switch, будет выполнена. case параметры могут содержать шаблоны. Эти параметры необходимо экранировать или заключить в кавычки, чтобы избежать расширения шаблонов, используемых для имён файлов.
Обратите внимание, что в fish нет «проваливания» в операторах case. Выполняется только первый соответствующий case.
Обратите внимание, что подстановки команд в операторе 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.
© 2022 fish-shell developers
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.5/cmds/switch.html