case - условное выполнение блока команд
Синтаксис
switch VALUE
[case [GLOB ...]
[COMMAND ...]]
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
# 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 было установлено в «банан», будет выведено «Я не знаю, что такое банан».
© 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/case.html