Trumpas vadovas, kaip sukurti ir iškviesti funkcijas „Bash“.
Funkcija yra daugkartinio naudojimo kodo blokas, naudojamas tam tikram veiksmui atlikti. Naudodamiesi funkcijomis, gauname geresnį moduliškumą ir aukštą kodo pakartotinį naudojimą.
„Bash“ teikia kai kurias įmontuotas funkcijas, tokias kaip echo
ir read
, bet galime susikurti ir savo funkcijas.
„Bash“ funkcijas galime sukurti dviem būdais:
Vienas iš būdų yra tiesiog naudoti funkcijos pavadinimą, pvz .:
functionName(){ // scope of function }
Kompaktiška versija:
functionName(){ echo 'hello'; }
Kitas būdas yra deklaruoti funkciją naudojant function
raktinis žodis:
function functionName { // scope of function }
Kompaktiška versija:
function functionName { echo 'hello'; }
Atkreipkite dėmesį, kaip mums nereikia ()
naudojant function
raktinis žodis funkcijai sukurti.
Svarbūs pastabos apie „Bash“ funkcijas:
{}
yra funkcijos kūnas ir taikymo sritis;
Pavyzdys:
Šis kodas sukuria funkciją, kuri atsispausdina „Hello World“ į konsolę. Vadinamas funkcijos pavadinimas Sveiki :
#!/bin/bash printHello(){
echo 'Hello World!' }
Kaip mes vadiname aukščiau nurodytą funkciją? Viskas, ką jums reikia padaryti savo „bash“ scenarijuje, yra parašyti funkcijos pavadinimą ir ji bus iškviesta.
Pavyzdžiui:
#!/bin/bash printHello(){
echo 'Hello World!' } # Call printHello function from anywhere in the script by writing the name printHello
Išvestis:
'Hello World'
Pirmiau nurodyta funkcija printHello()
neturi jokių parametrų. Bet kada, kai jį pavadinsime, gauname „Hello World“ išvestį. Bet ką daryti, jei norėtume sukurti bendresnę funkciją? Pavyzdžiui, galime iškviesti funkciją su tam tikru argumentu ir ji atspausdins tai, ką mes jai siunčiame.
Tai galima padaryti dviem būdais.
Pirmiausia galime modifikuoti printHello()
funkcija išspausdinti jai perduotus argumentus:
Pavyzdžiui:
#!/bin/bash printAny(){
echo 'Hello ' $1 } printAny World printAny DevQa printAny I love coding!
Išvestis:
Hello World Hello DevQA Hello I
Atkreipkite dėmesį, kaip trečiasis atspausdintas teiginys printAny I love coding!
tik išleido „Labas, aš“.
Taip yra todėl, kad mūsų funkcija skirta tik 1 parametrui $1
Žodis „Man patinka koduoti!“ yra iš tikrųjų 3 parametrai.
Jei norėtume visa tai atsispausdinti, aplink tekstą turėtume įdėti kabutes
Pavyzdžiui:
#!/bin/bash printAny(){
echo 'Hello ' $1 } printAny 'I love coding!'
Išvestis:
Hello I love coding
Kitas pavyzdys, kurį galime perduoti ir skaitmenimis:
#!/bin/bash add() {
result=$(($1 + $2))
echo 'Result is: $result' } add 1 2
Išvestis:
Result is: 3
„Bash“ funkcijos taip pat gali grąžinti reikšmes.
Pavyzdžiui:
#!/bin/bash add() {
result=$(($1 + $2)) } add 1 2 echo 'The sum is: '$result
Išvestis:
The sum is: 3
Kitas būdas grąžinti reikšmes iš funkcijos yra priskirti rezultatą kintamajam, kurį galima naudoti esant poreikiui.
Pavyzdžiui:
#!/bin/bash add () { local result=$(($1 + $2)) echo '$result' } result='$(add 1 2)' echo 'The sum is: '$result
Išvestis:
The sum is: 3