Функції bash в скриптах

Напевно, всім відомо, що у оболонки Bash є вбудовані команди, яких немає в папках / bin або / usr / bin. Вони вбудовані в оболонку і виконуються у вигляді функцій. В одній з попередніх статей ми розглядали написання скриптів на Bash. Ми обговорили там майже все, як повинні виглядати скрипти, використання умов, циклів, змінних, але не зупинялися на функціях.

У сьогоднішній статті ми виправимо цей недолік. Як і в будь-якій мові програмування, в Bash є функції їх може бути дуже корисно використовувати. Ми розглянемо використання функцій bash, як їх писати і навіть як створювати бібліотеки з цих функцій.

Написання функцій Bash

Спочатку потрібно зрозуміти що таке функція в нашому контексті. Функція - це набір команд, об`єднаних одним ім`ям, які виконують певне завдання. Функція викликається по її імені, може приймати параметри і повертати результат роботи. Одним словом, функції Bash працюють так само, як і в інших мовах програмування.

Синтаксис створення функції дуже простий:

імя_функциі() { спісок_команд }

Ім`я функції не повинно збігатися з жодною з існуючих команд або функцій, а всі команди в тілі функції пишуться з нового рядка.

проста функція

Давайте напишемо невелику функцію, яка буде виводити рядок на екран:

$ Chmod u + x function.sh $ vi function.sh
printstr () {
echo $ 1
}
printstr "Hello world"

Можна зробити, щоб параметрів було кілька:

#! / Bin / bash
printstr () {
echo $ 1
echo $ 2
echo $ 3
echo $ 5
}
printstr "arg1" "arg2" "arg3" "arg4" "arg5" #! / bin / bash
printstr () {
echo $ 1
shift
echo $ 1
shift
echo $ 1
shift
echo $ 1
}
printstr "arg1" "arg2" "arg3" "arg4"


Повернення результату функції

Ви можете не тільки використовувати функції з параметрами bash, а й отримати від неї результат роботи. Для цього використовується команда return. Вона завершує функцію і повертає числове значення коду повернення. Він може бути від 0 до 255:


printstr () {
return 134;
}
printstr
echo $?

Якщо вам потрібно застосувати повернення значення функції bash, а не статус код, використовуйте echo. Рядок не відразу виводиться в термінал, а повертається в якості результату функції і її можна записати в змінну, а потім використовувати:

#! / Bin / bash
printstr () {
echo "test"
}
VAR = $ (printstr)
echo $ VAR


Відео: 19.Linux для Початківців - Скрипти Linux Bash, Частина 1

експорт функцій

Ви можете зробити функцію доступною поза скрипта за допомогою команди declare:

Відео: LPIC 105.1 частина третя. Bash: передача аргументів функції


printstr () {
echo "hello world"
}
declare -x -f printstr

Потім запустіть скрипт за допомогою команди source:

$ Source function.sh
$ printstr

рекурсія

Ви можете викликати функцію з неї ж самої, щоб зробити рекурсию:


printstr () {
echo "hello world"
printstr
}
printstr

Ви можете поекспериментувати з використанням рекурсії, у багатьох випадках це може бути корисним, тільки не забувайте робити перший виклик функції Bash.

Локальні змінні в функції

Якщо ви оголосите звичайну змінну у функції, то вона буде доступною в усьому скрипті, це зручно для повернення значення функції, але іноді може знадобитися зробити локальну змінну. Для цього існує команда local:

#! / Bin / bash
printstr () {
local VAR = $ 1
echo $ {VAR}
}
printstr "Hello World"

бібліотеки функцій

Ми можемо взяти деякі функції bash і об`єднати їх в одну бібліотеку, щоб мати можливість однією командою імпортувати ці функції. Це робиться схожим чином на експорт функцій. Спочатку створимо файл бібліотеки:

Відео: SHELL BASH. Основи роботи в командному процесорі. Урок 1. Команда LS

#! / Bin / bash

test1 () {
echo "Hello World from 1";
}
test2 () {
echo "Hello World from 2";
}
test3 () {
echo "Hello World from 3";
}

Тепер створимо скрипт, який буде використовувати наші функції. Імпортувати бібліотеку можна за допомогою команди source або просто вказавши ім`я скрипта:

#! / Bin / bash
source lib.sh
test1
test2
test3

висновки

У цій статті ми розглянули функції bash, як їх писати, застосовувати і об`єднувати в бібліотеки. Якщо ви часто пишете скрипти на Bash, то ця інформація буде для вас корисною. Ви можете створити свій набір функцій, для використання їх в кожному скрипті і тим самим полегшити собі роботу.

Поділися в соціальних мережах:

Схожі
Установка bash в windows 10Установка bash в windows 10
Створення динамічної функції на phpСтворення динамічної функції на php
Вивчаємо sass. Міксини.Вивчаємо sass. Міксини.
Команда rundll32 - виконати функцію, експортовану бібліотекою dll.Команда rundll32 - виконати функцію, експортовану бібліотекою dll.
Написання скриптів на bashНаписання скриптів на bash
Вийшла нова тестова зборка windows 10 з підтримкою bash on ubuntuВийшла нова тестова зборка windows 10 з підтримкою bash on ubuntu
Келебії докса - введення в програмування на goКелебії докса - введення в програмування на go
Програмування під linuxПрограмування під linux
Масиви bashМасиви bash
Налаштування завантажувача grubНалаштування завантажувача grub
» » Функції bash в скриптах