Fish Shell:
Организация кода в функции
Как это сделать:
В Fish вы пишете функцию с ключевым словом function
, даёте ей имя и заканчиваете end
. Вот простой пример:
function hello
echo "Привет, мир!"
end
hello
Вывод:
Привет, мир!
Теперь давайте сделаем так, чтобы она приветствовала пользователя:
function greet
set user (whoami)
echo "Приветики, $user!"
end
greet
Вывод:
Приветики, ваш_пользователь!
Чтобы сохранить функцию на будущие сеансы, используйте funcsave greet
.
Погружение
Функции Fish Shell похожи на мини-скрипты — вы можете поместить туда практически что угодно. Исторически концепция функций в скриптах оболочки сэкономила бесчисленное количество часов повторяющегося набора и отладки. В отличие от языков программирования, таких как Python, функции Shell больше ориентированы на удобство, чем на структуру.
Некоторые оболочки, такие как Bash, используют function
или просто фигурные скобки. Fish придерживается function ... end
— чётко и понятно. Внутри функций Fish у вас есть все удобства: параметры, локальные переменные с set -l
, и вы даже можете определить функцию внутри другой функции.
Вам не понадобится значение return
, потому что Fish не сильно заботится об этом; вывод вашей функции и есть её возвращаемое значение. И если вы хотите, чтобы функции оставались доступными для будущих сеансов, помните о funcsave
.
Смотрите также
- Учебник по функциям fish: https://fishshell.com/docs/current/tutorial.html#tut_functions