Что такое функция Bash в Linux и как ее использовать?

Предположим, вы работаете над сложным сценарием bash для автоматизации ряда задач в вашей системе Linux. Вы замечаете, что по мере роста появляются определенные части скрипта, в которых одни и те же блоки кода повторяются несколько раз. Для этого вы можете обернуть повторяющуюся часть внутри блока, известного как «функция», и использовать его повторно, делая общий код более упорядоченным и организованным. В этой статье мы обсудим, что такое функция в bash и как ее использовать для автоматизации задач Linux.

Что такое функции Bash в Linux?

Функции Bash — это многократно используемые блоки кода в сценарии bash, которые можно сгруппировать и назвать, чтобы избежать повторного написания одного и того же кода. Как и в других языках программирования, вы можете использовать функции в своих bash-скриптах. Функции помогают организовать весь сценарий в более мелкие модули, делая код более читабельным, легким для отладки и пригодным для повторного использования. Другими словами, функции подобны сценарию внутри сценария.

Как определить функции в Bash?

Теперь, когда у вас есть базовое представление о том, что такое функции bash, давайте посмотрим, как их определить, чтобы сделать наш рабочий процесс в Linux намного проще. Основной синтаксис для определения функций bash:

(){

}

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Вы даже можете использовать однострочную версию приведенного выше синтаксиса:

() { ; }

Некоторые моменты, которые следует помнить об определении функций bash, включают:

  • Каждый оператор и команда, написанные внутри {}, называются телом функции. В качестве имени функции вы можете использовать что угодно, кроме ключевого слова, которое представляет собой определенные слова, зарезервированные для разных команд.
  • В отличие от обычного bash-скрипта, функции не выполняются до тех пор, пока вы их не вызовете. Чтобы выполнить функцию, вам нужно использовать имя функции.
  • При использовании однострочной версии каждая написанная вами команда должна быть разделена точкой с запятой ‘;’.
  • Все переменные, объявленные внутри функции, доступны только внутри тела функции.

Давайте посмотрим на базовый пример, основанный на приведенном выше синтаксисе. Начните с создания нового файла в текстовых редакторах Linux и напишите в нем этот код:

#!/bin/bash hello_world () { echo ‘привет, мир’ } hello_world

пример того, как определить функцию bash в Linux

Рекомендуется сохранять файл с тем же именем, что и имя функции. Чтобы вызвать файл, просто напишите имя функции в командной строке и нажмите Enter.

./Привет, мир

выполнение функции, определенной

Как передавать аргументы функциям Bash

Иногда вам может понадобиться работать с некоторыми пользовательскими значениями или работать со значениями пользовательского ввода с помощью созданных вами функций. Чтобы передать аргументы функции bash, просто укажите их после имени функции после вызова функции в качестве переменных оболочки Linux. Что касается использования аргументов внутри функции, поместите их с помощью $, например $1, $2 ниже и так далее. Например:

#!/bin/bash приветствие () { echo “Hello $1” } приветствие “Бибом”

передача аргументов функции в bash

Для вызова используйте следующую команду:

./приветствие.ш

просмотр вывода передачи пользовательских аргументов в функцию bash

Как вернуть значение из функций Bash

В отличие от других языков программирования, в bash вы не можете возвращать значения из функции. Вы можете отправить статус возврата из функции bash вызывающей стороне только с любым числом в диапазоне от 0 до 255, где 0 означает успех, а любое другое число — системную ошибку/сбой Linux. Например, скопируйте этот код в редакторе nano в Linux.

#!/bin/bash приветствие () { echo “Привет $1” return 10 } приветствие “Бибом” echo Возвращаемое значение $?

возврат пользовательского статуса возврата из функции

Когда вы вызываете приведенный выше сценарий, вы получите аналогичный результат вместе со значением 10, указывающим на сбой или ошибку.

выполнение вышеуказанной функции

Область видимости переменных в функциях Bash

Область действия переменной означает части кода, в которых переменные могут использоваться в bash. Область действия можно разделить на две основные части: глобальную и локальную. С глобальной областью видимости переменную можно использовать везде, в том числе непосредственно в приглашении оболочки. Локальная область означает, что переменная не может использоваться вне блока, в котором она объявлена.

Каждая переменная, которую вы объявляете внутри функции bash с помощью ключевого слова «local», будет подпадать под локальную область видимости тела функции и не может использоваться вне тела функции. Точно так же доступ к глобальным переменным можно получить из любого места скрипта bash без каких-либо ограничений. Следующий пример прояснит ситуацию:

#!/bin/bash global_var=”Я глобальный” function display_global() { echo “Внутренняя функция: $global_var” local local_var=”Я локальный” echo “Внутренняя функция: $local_var” } display_global echo “Внешняя функция: $ global_var” echo “Внешняя функция: $local_var”

скрипт bash, чтобы показать разницу между локальными и глобальными переменными

После выполнения приведенного выше скрипта вы увидите следующий вывод:

просмотр вывода локальных и глобальных переменных в функции bash через оболочку Linux

Лучшие практики использования функций в Bash

Функции Bash — это мощные инструменты, которые могут улучшить структуру, удобство сопровождения и возможность повторного использования сценариев bash в Linux. Следуйте этим рекомендациям, чтобы использовать функции в bash, которые могут значительно улучшить наш рабочий процесс:

  1. Делайте функции короткими и сфокусированными. Старайтесь, чтобы функции, которые вы пишете, были короткими, лаконичными и сфокусированными на выполнении одной задачи. Это улучшит общую читабельность и удобство сопровождения сценария bash.
  2. Используйте описательные имена: используйте короткое, но описательное имя, которое отражает назначение функции в качестве имени функции. Четкие и осмысленные имена делают код более понятным, позволяя вам, а также другим разработчикам поддерживать и развивать код.
  3. Добавляйте комментарии: не только для сценариев bash, но и для всех различных типов языков программирования, с которыми вы работаете, используйте комментарии, описывающие, какая часть кода что делает.
  4. Повторное использование функций. По возможности повторно используйте функции, чтобы избежать повторного написания одного и того же кода.
  5. Избегайте конфликтов имен функций: избегайте использования функций с теми же именами, что и у встроенных команд и других инструментов командной строки.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)