Функції bash в скриптах
Напевно, всім відомо, що у оболонки Bash є вбудовані команди, яких немає в папках / bin або / usr / bin. Вони вбудовані в оболонку і виконуються у вигляді функцій. В одній з попередніх статей ми розглядали написання скриптів на Bash. Ми обговорили там майже все, як повинні виглядати скрипти, використання умов, циклів, змінних, але не зупинялися на функціях.
У сьогоднішній статті ми виправимо цей недолік. Як і в будь-якій мові програмування, в Bash є функції їх може бути дуже корисно використовувати. Ми розглянемо використання функцій bash, як їх писати і навіть як створювати бібліотеки з цих функцій.
Написання функцій Bash
Спочатку потрібно зрозуміти що таке функція в нашому контексті. Функція - це набір команд, об`єднаних одним ім`ям, які виконують певне завдання. Функція викликається по її імені, може приймати параметри і повертати результат роботи. Одним словом, функції Bash працюють так само, як і в інших мовах програмування.
Синтаксис створення функції дуже простий:
імя_функциі() { спісок_команд }
Ім`я функції не повинно збігатися з жодною з існуючих команд або функцій, а всі команди в тілі функції пишуться з нового рядка.
проста функція
Давайте напишемо невелику функцію, яка буде виводити рядок на екран:
$ Chmod u + x function.sh $ vi function.sh
printstr () {
echo $ 1
}
printstr "Hello world"
Можна зробити, щоб параметрів було кілька:
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. Рядок не відразу виводиться в термінал, а повертається в якості результату функції і її можна записати в змінну, а потім використовувати:
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:
$ printstr
рекурсія
Ви можете викликати функцію з неї ж самої, щоб зробити рекурсию:
printstr () {
echo "hello world"
printstr
}
printstr
Ви можете поекспериментувати з використанням рекурсії, у багатьох випадках це може бути корисним, тільки не забувайте робити перший виклик функції Bash.
Локальні змінні в функції
Якщо ви оголосите звичайну змінну у функції, то вона буде доступною в усьому скрипті, це зручно для повернення значення функції, але іноді може знадобитися зробити локальну змінну. Для цього існує команда local:
printstr () {
local VAR = $ 1
echo $ {VAR}
}
printstr "Hello World"
бібліотеки функцій
Ми можемо взяти деякі функції bash і об`єднати їх в одну бібліотеку, щоб мати можливість однією командою імпортувати ці функції. Це робиться схожим чином на експорт функцій. Спочатку створимо файл бібліотеки:
Відео: SHELL BASH. Основи роботи в командному процесорі. Урок 1. Команда LS
#! / Bin / bashtest1 () {
echo "Hello World from 1";
}
test2 () {
echo "Hello World from 2";
}
test3 () {
echo "Hello World from 3";
}
Тепер створимо скрипт, який буде використовувати наші функції. Імпортувати бібліотеку можна за допомогою команди source або просто вказавши ім`я скрипта:
#! / Bin / bashsource lib.sh
test1
test2
test3
висновки
У цій статті ми розглянули функції bash, як їх писати, застосовувати і об`єднувати в бібліотеки. Якщо ви часто пишете скрипти на Bash, то ця інформація буде для вас корисною. Ви можете створити свій набір функцій, для використання їх в кожному скрипті і тим самим полегшити собі роботу.
- Програмування під linux
- Вийшла нова тестова зборка windows 10 з підтримкою bash on ubuntu
- Установка bash в windows 10
- Келебії докса - введення в програмування на go
- Як дізнатися pid скрипта
- Команда rundll32 - виконати функцію, експортовану бібліотекою dll.
- Корисні команди linux
- Налаштування bash-completion в gentoo
- Налаштування завантажувача grub
- Масиви bash
- Вивчаємо sass. Міксини.
- Команда echo в linux
- Створення функцій в php
- Функція sscanf в php
- Вивчаємо coffeescript. Функції.
- Написання скриптів оболонки - поради експертів
- Написання скриптів на bash
- Робота з bash
- Змінні оточення в linux
- Налаштування терміналу ubuntu
- Створення динамічної функції на php