Како да креирате и повикувате функции во Баш

Брз водич за тоа како да креирате и повикувате функции на Баш.

Функција е блок од повеќекратна употреба на код што се користи за извршување на некое дејство. Со функциите, добиваме подобра модуларност и висок степен на повторна употреба на кодот.

Баш обезбедува некои вградени функции како што се echo и read, но исто така можеме да создадеме свои функции.

Создавање функција во Баш

Постојат два начина на кои можеме да создадеме функции во Баш:

Еден начин е само да го користите името на функцијата, на пример:

functionName(){ // scope of function }

Компактна верзија:



functionName(){ echo 'hello'; }

Друг начин е да се прогласи функција со помош на function клучен збор:

function functionName { // scope of function }

Компактна верзија:

function functionName { echo 'hello'; }

Забележете како не ни требаат () кога се користи function клучен збор за креирање функција.

Важни точки што треба да се забележат за функциите Баш:

  • Кодот помеѓу кадрава заграда {} е функцијата тело и обем
  • Кога повикуваме функција, ние само го користиме името на функцијата од каде било во скриптата за баш
  • Функцијата мора да биде дефинирана пред да може да се користи
  • Кога ја користите компактната верзија, последната команда мора да има точка-точка и точка-точка |

Пример:

Следниот код создава функција што отпечаќа „Hello World“ на конзолата. Се вика името на функцијата печати Здраво :

;

Повикување на функција на Баш

Како ја нарекуваме горенаведената функција? Сè што треба да направите во вашата баш-скрипта е да го напишете името на функцијата и таа ќе биде повикана.

На пример:

#!/bin/bash printHello(){
echo 'Hello World!' }

Излез:

#!/bin/bash printHello(){
echo 'Hello World!' } # Call printHello function from anywhere in the script by writing the name printHello

Донесување аргументи

Горенаведената функција 'Hello World' нема никакви параметри. Во секое време го нарекуваме, го добиваме излезот „Здраво свет“. Но, што ако сакавме да создадеме погенеричка функција? На пример, можеме да ја повикаме функцијата со одреден аргумент и таа ќе го испечати она што ќе и го испратиме.

Постојат два начина на тоа.

Прво можеме да ги измениме printHello() функција за печатење на аргументите што и се пренесени:

На пример:

printHello()

Излез:

#!/bin/bash printAny(){
echo 'Hello ' $1 } printAny World printAny DevQa printAny I love coding!

Забележете како третата изјава за печатење Hello World Hello DevQA Hello I излезе само „Здраво, јас“.

Тоа е затоа што нашата функција е дизајнирана да зема само 1 параметар printAny I love coding!. Зборот „Сакам кодирање!“ е всушност 3 параметри.

Ако сакавме да го испечатиме сето тоа, ќе треба да ставиме цитати околу текстот

На пример:

$1

Излез:

#!/bin/bash printAny(){
echo 'Hello ' $1 } printAny 'I love coding!'

Друг пример, можеме да поминеме и со цифри:

Hello I love coding

Излез:

#!/bin/bash add() {
result=$(($1 + $2))
echo 'Result is: $result' } add 1 2

Враќање на вредностите

Баш функциите исто така можат да враќаат вредности.

На пример:

Result is: 3

Излез:

#!/bin/bash add() {
result=$(($1 + $2)) } add 1 2 echo 'The sum is: '$result

Друг начин да се вратат вредностите од функцијата е да се додели резултатот на променливата што може да се користи како и кога е потребно.

На пример:

The sum is: 3

Излез:

#!/bin/bash add () { local result=$(($1 + $2)) echo '$result' } result='$(add 1 2)' echo 'The sum is: '$result