Kako stvoriti i pozvati funkcije u Bashu

Kratki vodič za stvaranje i pozivanje funkcija u Bashu.

Funkcija je blok višekratne šifre koji se koristi za izvođenje neke radnje. S funkcijama dobivamo bolju modularnost i visok stupanj ponovne upotrebe koda.

Bash nudi neke ugrađene funkcije poput echo i read, ali možemo stvoriti i vlastite funkcije.

Stvaranje funkcije u Bashu

Postoje dva načina na koje možemo stvoriti funkcije u Bashu:

Jedan od načina je samo koristiti naziv funkcije, npr .:

functionName(){ // scope of function }

Kompaktna verzija:



functionName(){ echo 'hello'; }

Drugi način je deklariranje funkcije pomoću function ključna riječ:

function functionName { // scope of function }

Kompaktna verzija:

function functionName { echo 'hello'; }

Primijetite kako nam nije potreban () kada koristite function ključna riječ za stvaranje funkcije.

Važne napomene o Bash funkcijama:

  • Šifra između kovrčavih zagrada {} je tijelo i opseg funkcije
  • Kada pozivamo funkciju, koristimo samo ime funkcije s bilo kojeg mjesta u bash skripti
  • Funkcija mora biti definirana prije nego što se može koristiti
  • Kada se koristi kompaktna verzija, zadnja naredba mora imati zarez ;

Primjer:

Sljedeći kôd stvara funkciju koja na konzolu ispisuje 'Hello World'. Poziva se ime funkcije printHalo :

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

Pozivanje funkcije u Bashu

Kako zovemo gornju funkciju? Sve što trebate učiniti u vašoj bash skripti je da napišete ime funkcije i ona će biti pozvana.

Na primjer:

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

Izlaz:

'Hello World'

Donošenje argumenata

Gornja funkcija printHello() nema nikakve parametre. Kad god ga nazovemo, dobit ćemo izlaz 'Hello World'. Ali što ako bismo željeli stvoriti općenitiju funkciju? Na primjer, možemo pozvati funkciju s nekim argumentom i ona će ispisati ono što joj pošaljemo.

Postoje dva načina za to.

Prvo možemo izmijeniti printHello() funkcija za ispis argumenata koji su joj proslijeđeni:

Na primjer:

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

Izlaz:

Hello World Hello DevQA Hello I

Primijetite kako treća ispisna izjava printAny I love coding! izbačeno je samo 'Hello, I'.

To je zato što je naša funkcija dizajnirana da uzima samo 1 parametar $1. Riječ 'Volim kodiranje!' je zapravo 3 parametra.

Ako bismo htjeli sve to ispisati, trebali bismo staviti citate oko teksta

Na primjer:

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

Izlaz:

Hello I love coding

Još jedan primjer, možemo unijeti i znamenke:

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

Izlaz:

Result is: 3

Povratne vrijednosti

Bash funkcije mogu također vratiti vrijednosti.

Na primjer:

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

Izlaz:

The sum is: 3

Drugi način za vraćanje vrijednosti iz funkcije je dodjeljivanje rezultata varijabli koja se može koristiti prema potrebi.

Na primjer:

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

Izlaz:

The sum is: 3