Bash:
Koodin järjestäminen funktioihin
Miten:
Luo yksinkertainen funktio Bashissa:
greet() {
echo "Hello, $1!"
}
Käytä sitä kutsumalla funktiota parametrin kanssa:
greet "World" # Tulostus: Hello, World!
Funktiot voivat palauttaa arvoja käyttäen return
-komentoa numeerisille tilakoodeille (ei kuitenkaan varsinaisten tietojen palautukseen):
add() {
return $(($1 + $2))
}
add 3 4
echo $? # Tulostus: 7
Huomaa, että $?
tallentaa viimeisen komennon paluuarvon, joka on add
-funktion numeerinen tulos.
Syventävä osio
Bashissa funktiot ovat olleet tapa paketoida koodia jo alkuperäisestä versiosta lähtien. Historiallisesti, funktioiden käyttö heijastelee 1960-luvulla esitettyjä rakenteellisen ohjelmoinnin periaatteita, joiden tavoitteena oli parantaa koodin laatua.
Vaihtoehtoja funktioille ovat muiden skriptitiedostojen lähdekoodin sisällyttäminen tai aliasten käyttö, mutta nämä eivät tarjoa samaa modulaarisuuden ja uudelleenkäytettävyyden tasoa.
Eräs merkittävä toteutuksen yksityiskohta Bashissa on se, että funktiot ovat ensiluokkaisia toimijoita; niillä ei ole erityistä määritysavaainsanaa kuten function
muilla kielillä, vaikkakin function
on Bashissa valinnainen luettavuuden vuoksi. Funktion skooppi on myös mielenkiintoinen – muuttujat ovat oletuksena globaaleja, ellei niitä ole määritelty paikallisiksi, mikä voi johtaa odottamattomaan käyttäytymiseen, jos sitä ei hallita asianmukaisesti.
Katso myös
- Bash manuaali Shell-funktioista: https://www.gnu.org/software/bash/manual/html_node/Shell-Functions.html
- Kehittynyt Bash-skriptausopas: https://tldp.org/LDP/abs/html/functions.html
- “Pro Bash Programming: Scripting the GNU/Linux Shell” syvällisiin funktioiden skriptauskonsepteihin ja -käytäntöihin.