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.

Смотрите также

Команды для работы с функциями

  • function — Создать функцию
  • functions — Печатать или стирать функции
  • funcsave — Сохранить определение функции в каталог автозагрузки пользователя
  • funced — Интерактивно редактировать функцию