Nola sortu eta deitu funtzioak Bash-en

Bash-en funtzioak nola sortu eta nola deitu jakiteko gida azkarra.

Funtzioa zenbait ekintza burutzeko erabiltzen den kode berrerabilgarriaren bloke bat da. Funtzioekin, modularitate hobea eta kodea berrerabiltzeko maila altua lortzen dugu.

Bash-ek zenbait funtzio integratu eskaintzen ditu, hala nola echo eta read, baina gure funtzioak ere sor ditzakegu.




Funtzio bat sortzea Bash-en

Bash-en funtzioak sortzeko bi modu daude:

Modu bat funtzioaren izena soilik erabiltzea da, adibidez:


functionName(){ // scope of function }

Bertsio trinkoa:

functionName(){ echo 'hello'; }

Beste modu bat function erabiliz funtzio bat deklaratzea da hitz gakoa:

function functionName { // scope of function }

Bertsio trinkoa:

function functionName { echo 'hello'; }

Ikusi nola ez dugun () behar function erabiltzean gako-hitz funtzio bat sortzeko.


Bash funtzioei buruz kontuan hartu beharreko puntu garrantzitsuak:

  • Giltza kizkurren arteko kodea {} funtzioaren gorputza eta esparrua da
  • Funtzio bati deitzerakoan, funtzioaren izena bash scripteko edozein lekutatik erabiltzen dugu
  • Funtzioa erabili aurretik definitu behar da
  • Bertsio trinkoa erabiltzerakoan, azken komandoak puntu eta koma izan behar du ;

Adibidez:

Ondorengo kodeak 'Kaixo mundua' kontsolan inprimatzen duen funtzioa sortzen du. Funtzioaren izena deitzen da inprimatuKaixo :

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


Funtzio bati Bash-en deitzea

Nola deitu goiko funtzio horri? Zure bash scriptean egin behar duzun guztia funtzioaren izena idaztea da eta deituko zaio.


Adibidez:

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

Irteera:

'Hello World'

Argudioak pasatzea

Goiko funtzioa printHello() ez du parametrorik. Deitzen diogun bakoitzean, 'Hello World' irteera lortuko dugu. Baina zer gertatzen da funtzio generikoagoa sortu nahi badugu? Adibidez funtzioari argudio batzuekin dei diezaiokegu eta bidalitakoa inprimatuko du.

Hori egiteko bi modu daude.


Lehenik eta behin printHello() aldatu dezakegu funtzioa ematen zaizkion argumentuak inprimatzeko:

Adibidez:

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

Irteera:

Hello World Hello DevQA Hello I

Ikusi nola inprimatu den hirugarren adierazpena printAny I love coding! 'Kaixo, ni' bakarrik atera du.


Hau da, gure funtzioa parametro bakarra hartzeko diseinatuta dagoelako $1. 'Kodetzea maite dut!' Hitza 3 parametro da.

Guztia inprimatu nahi bagenu, komatxoak jarri beharko genituzke testuaren inguruan

Adibidez:

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

Irteera:

Hello I love coding

Beste adibide bat, zifretan ere pasa dezakegu:

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

Irteera:

Result is: 3

Itzuli Balioak

Bash funtzioek balioak ere itzul ditzakete.

Adibidez:

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

Irteera:

The sum is: 3

Funtzio batetik balioak itzultzeko beste modu bat emaitza aldagai bati esleitzea da, beharrezkoa denean eta erabil daitekeen aldagai bati.

Adibidez:

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

Irteera:

The sum is: 3