logo

Bash Scripting – Функції

Сценарій Bash — це простий текстовий файл. Цей файл містить різні команди для покрокового виконання. Ці команди можна записати безпосередньо в командний рядок, але з точки зору повторного використання корисно зберігати всі взаємопов’язані команди для певного завдання в одному файлі. Ми можемо використовувати цей файл для виконання набору команд один або кілька разів відповідно до наших вимог.

У цій статті ми обговоримо використання функцій у сценаріях Bash.

У програмуванні функція — це блок коду, який виконує деякі завдання, і її можна викликати кілька разів для виконання завдань. Це забезпечує модульність програми та зменшує довжину коду. Найпростіший приклад використання функції в сценаріях Bash можна подати так:



оператор switch java

Приклад сценарію:

#!/bin/bash #It is a function myFunction () { echo Hello World from techcodeview.com } #function call myFunction>

Вихід:

Hello World from techcodeview.com>

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

Синтаксис:

# for defining function_name(){ commands ..... } function_name # for calling>

Окрім цього, ми також можемо мати функції з передачею аргументів і значеннями, що повертаються. Тепер обговоримо їх.

Функції з передачею аргументів

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

Синтаксис функцій із передачею аргументів:

#for defining function_name(){ ..... parameter_1 =  parameter_2 =  . . . parameter_n = $n .... commands ..... } #for calling function_name p1 p2 ....pn>

Ми можемо безпосередньо передавати аргументи під час виклику функції та мати до них доступ , ….. $n в межах функції. Давайте розглянемо приклад для більш чіткого розуміння.

Приклад функцій із передачею аргументів:

#!/bin/bash add_two_num(){ local sum=$((+)) echo sum of  and  is $sum } add_two_num 2 3>

Вихід функцій із передачею аргументів:

java порівняння рядків
sum of 2 and 3 is 5>

Вище наведено сценарій додавання двох чисел. Тут ми надали 2 і 3 як аргументи. Ми отримали доступ до них за допомогою і із функції, обчислили їхню суму та надрукували її на терміналі. Нижче наведено зображення оболонки терміналу після виконання сценарію –

Вивід функцій з передачею аргументів

Функції зі значеннями, що повертаються

Повернене значення створюється та повертається до викликаного методу функцією після завершення її виконання. Повернене значення може використовуватися для спільного використання створеного результату або деякого коду стану про те, чи була одна функція успішно виконана чи ні. У сценаріях Bash значення, що повертається, присвоюється $? змінна.

Приклад того ж наведено нижче –

Приклад функцій із значеннями, що повертаються:

вік рітік рошан
#!/bin/bash myfun(){ return 7 } myfun echo The return value is $?>

Вихід функцій із значеннями, що повертаються:

The return value is 7>

Нижче наведено результат оболонки терміналу після виконання сценарію –

Вивід функцій із значеннями, що повертаються

Тепер давайте змінимо попередню суму сценарію з двома числами.

Змінений код:

#!/bin/bash myfun(){ return $((+)) } add_two_num 2 3 echo The sum is $?>

Вихід модифікованого коду:

The sum is 5>

Наведений вище код є прикладом використання як параметрів, так і значення, що повертається, у функції сценарію Bash.

Нижче наведено зображення оболонки терміналу після виконання сценарію –

Вихід модифікованого коду

Область змінної

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

Найкраще завжди використовувати локальну змінну всередині функції, щоб уникнути непотрібної плутанини.

Приклад того ж наведено нижче –

Приклад області змінної:

порівняння лева і тигра
#!/bin/bash var1='Apple' #global variable myfun(){ local var2='Banana' #local variable var3='Cherry' #global variable echo 'The name of first fruit is $var1' echo 'The name of second fruit is $var2' } myfun #calling function echo 'The name of first fruit is $var1' #trying to access local variable echo 'The name of second fruit is $var2' echo 'The name of third fruit is $var3'>

Вихід області змінної:

The name of first fruit is Apple The name of second fruit is Banana The name of first fruit is Apple The name of second fruit is The name of third fruit is Cherry>

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

З іншого боку, на відміну від мов програмування, незважаючи на те, що var3 визначено всередині функції, вона все одно діє як глобальна змінна, і до неї можна отримати доступ поза функцією. Нижче наведено зображення оболонки терміналу після виконання сценарію –

Вихід області змінної

Перевизначені команди

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

Приклад того ж наведено нижче –

рядок для int у java

Приклад перевизначених команд:

#!/bin/bash #overriding command echo(){ builtin echo 'The name is : ' } echo 'Satyajit Ghosh'>

Вихід команд перевизначення:

The name is : Satyajit Ghosh>

У цьому прикладі ми замінили луна команда. Тепер перед тим, як надрукувати заданий рядок, він додає до рядка кілька слів, а потім друкує. Нижче наведено зображення оболонки терміналу після виконання сценарію –

Виведення команд перевизначення