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.
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:
{}
funtzioaren gorputza eta esparrua da;
Adibidez:
Ondorengo kodeak 'Kaixo mundua' kontsolan inprimatzen duen funtzioa sortzen du. Funtzioaren izena deitzen da inprimatuKaixo :
#!/bin/bash printHello(){
echo 'Hello World!' }
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'
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
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