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