Hvernig á að búa til og hringja í aðgerðir í Bash

Stutt leiðbeining um hvernig á að búa til og hringja í Bash.

Aðgerð er kubbur með endurnýtanlegum kóða sem er notaður til að framkvæma einhverjar aðgerðir. Með aðgerðum fáum við betri aðlögun og mikla endurnotkun kóða.

Bash býður upp á nokkrar innbyggðar aðgerðir eins og echo og read en við getum líka búið til okkar eigin aðgerðir.

Að búa til fall í Bash

Það eru tvær leiðir sem við getum búið til aðgerðir í Bash:

Ein leiðin er að nota bara fallheitið, td:

functionName(){ // scope of function }

Samningur útgáfa:



functionName(){ echo 'hello'; }

Önnur leið er að lýsa yfir aðgerð með function lykilorð:

function functionName { // scope of function }

Samningur útgáfa:

function functionName { echo 'hello'; }

Takið eftir því hvernig við þurfum ekki () þegar þú notar function leitarorð til að búa til aðgerð.

Mikilvæg atriði sem þarf að hafa í huga varðandi Bash aðgerðir:

  • Kóðinn á milli krullaðra spelkna {} er aðgerð líkami og umfang
  • Þegar við hringjum í aðgerð, notum við bara fallnafnið hvaðan sem er í bash handritinu
  • Aðgerðin verður að skilgreina áður en hægt er að nota hana
  • Þegar samningur er notaður verður síðasta skipunin að hafa semikommu ;

Dæmi:

Eftirfarandi kóði býr til aðgerð sem prentar út „Hello World“ í vélinni. Heiti aðgerðarinnar er kallað prentaðu Halló :

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

Að kalla aðgerð í Bash

Hvernig köllum við ofangreinda aðgerð? Allt sem þú þarft að gera í bash handritinu þínu er að skrifa nafn aðgerðarinnar og það verður kallað.

Til dæmis:

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

Framleiðsla:

'Hello World'

Samþykkt rök

Ofangreind aðgerð printHello() hefur engar breytur. Hvenær sem við köllum það fáum við framleiðsluna „Halló heimur“. En hvað ef við vildum búa til almennari aðgerð? Til dæmis getum við kallað aðgerðina með einhverjum rökum og hún prentar það sem við sendum henni.

Það eru tvær leiðir til að gera þetta.

Fyrst getum við breytt printHello() virka til að prenta rökin sem færð eru til þess:

Til dæmis:

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

Framleiðsla:

Hello World Hello DevQA Hello I

Takið eftir hvernig þriðja prentyfirlýsingin printAny I love coding! sendi aðeins „Halló, ég“.

Þetta er vegna þess að aðgerð okkar er hönnuð til að taka aðeins 1 breytu $1. Orðið „Ég elska kóðun!“ er í raun 3 breytur.

Ef við vildum prenta það allt þyrftum við að setja tilvitnanir í kringum textann

Til dæmis:

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

Framleiðsla:

Hello I love coding

Annað dæmi, við getum líka gefið tölustafi:

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

Framleiðsla:

Result is: 3

Gildandi gildi

Bash aðgerðir geta einnig skilað gildi.

Til dæmis:

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

Framleiðsla:

The sum is: 3

Önnur leið til að skila gildi frá aðgerð er að úthluta niðurstöðunni til breytu sem hægt er að nota eftir þörfum.

Til dæmis:

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

Framleiðsla:

The sum is: 3