PHP Tutorials | PHP For Beginners
Sisällysluettelo:
- Bash-toiminnon ilmoitus
- Muuttujien laajuus
- Palautusarvot
- Argumenttien siirtäminen bashitoimintoihin
- johtopäätös
Bash-toiminto on olennaisesti joukko komentoja, joita voidaan kutsua useita kertoja. Funktion tarkoituksena on auttaa sinua parantamaan bash-skriptisi luettavuutta ja välttämään saman koodin kirjoittamista uudestaan ja uudestaan.
Verrattuna useimpiin ohjelmointikieliin Bash-toiminnot ovat jonkin verran rajoitetut. Tässä opetusohjelmassa kerromme Bash-toimintojen perusteista ja osoitamme, kuinka niitä voidaan käyttää komentosarjoissa.
Bash-toiminnon ilmoitus
Baskitoiminnon ilmoittamisen syntaksi on hyvin yksinkertainen. Ne voidaan ilmoittaa kahdessa eri muodossa:
-
Ensimmäinen muoto alkaa toiminnon nimellä, jota seuraa suluilla. Tämä on suositeltuin ja eniten käytetty muoto.
function_name () { commands }Yksirivinen versio:
function_name () { commands; }Toinen muoto alkaa
functionvaratulla sanalla, jota seuraa funktion nimi.function function_name { commands }Yksirivinen versio:
function function_name { commands; }
Muutamia huomioitavia asioita:
- Kommenttilista kiharanauhojen
{}on funktion runko. Funktion runkoa ympäröivät kiharaketjut on erotettava rungosta välilyönneillä tai uusilla viivoilla.Funktion määrittäminen ei suorita sitä. Käytä bash-toimintoa yksinkertaisesti käyttämällä funktion nimeä. Kommentit kiharanauhojen välillä suoritetaan aina, kun funktiota kutsutaan kuorikomentosarjasta. Toiminnon määritelmä on asetettava ennen toimintoon kutsumista.Kun käytetään yhden rivin "tiivistettyjä" toimintoja, puolipiste;on noudatettava toiminnon viimeistä komentoa.Yritä aina pitää toiminimesi kuvaavana.
Ymmärtääksesi tätä paremmin katsomalla seuraavaa esimerkkiä:
~ / Hello_world.sh
#!/bin/bash hello_world () { echo 'hello, world' } hello_world
Analysoidaan koodirivi riviltä:
- Rivillä
3määrittelemme funktion antamalla sille nimen ja avaamalla kihara-aukon{joka merkitsee funktion rungon alkua. Rivi4on funktion runko. Funktion runko voi sisältää useita komentoja ja muuttujien ilmoituksia.Rivi5, sulkeva kihara}, määritteleehello_worldfunktionhello_world7suoritamme toimintoa. Voit suorittaa toiminnon niin monta kertaa kuin tarvitset.
Jos suoritat komentosarjan, se tulostaa
hello, world
.
Muuttujien laajuus
Globaalit muuttujat ovat muuttujia, joihin pääsee mistä tahansa komentosarjasta soveltamisalasta riippumatta. Bash-muodossa kaikki muuttujat määritetään oletuksena globaaleiksi, vaikka ne olisi ilmoitettu funktion sisällä.
Paikalliset muuttujat voidaan ilmoittaa funktion rungossa
local
avainsanalla ja niitä voidaan käyttää vain kyseisen funktion sisällä. Eri toiminnoissa voi olla paikallisia muuttujia, joilla on sama nimi.
Tarkastellaan esimerkkiä, jotta muuttujien laajuus toimii paremmin Bashissa:
~ / Variables_scope.sh
#!/bin/bash var1='A' var2='B' my_function () { local var1='C' var2='D' echo "Inside function: var1: $var1, var2: $var2" } echo "Before executing function: var1: $var1, var2: $var2" my_function echo "After executing function: var1: $var1, var2: $var2"
Skripti alkaa määrittelemällä kaksi globaalia muuttujaa
var1
ja
var2
. Sitten toiminto, joka asettaa paikallisen muuttujan
var1
ja modifioi globaalia muuttujaa
var2
.
Before executing function: var1: A, var2: B Inside function: var1: C, var2: D After executing function: var1: A, var2: D
Yllä olevasta tuotosta voidaan päätellä, että:
- Jos asetat paikallisen muuttujan funktion runkoon samalla nimellä kuin olemassa olevan globaalin muuttujan, se on etusijalla globaalin muuttujan kanssa.Globaalimuuttujia voidaan muuttaa toiminnon sisällä.
Palautusarvot
Toisin kuin “oikeiden” ohjelmointikielten toiminnot, bash-toiminnot eivät salli sinun palauttaa arvoa, kun niitä kutsutaan. Kun bash-toiminto suoritetaan loppuun, sen palautusarvo on toiminnossa viimeksi suoritetun lauseen tila,
0
menestykseen ja nollakohtainen desimaaliluku 1 - 255 epäonnistumisen alueella.
Palautustila voidaan määrittää käyttämällä
return
, ja se määritetään muuttujalle
$?
.
return
lopettaa toiminnon. Voit ajatella sitä toiminnon poistotilana.
#!/bin/bash my_function () { echo "some result" return 55 } my_function echo $?
some result 55
Minkä tahansa arvon palauttamiseksi funktiosta meidän on käytettävä muita menetelmiä. Yksinkertaisin vaihtoehto on osoittaa funktion tulos globaalille muuttujalle:
~ / Return_values.sh
#!/bin/bash my_function () { func_result="some result" } my_function echo $func_result
some result
Toinen, parempi vaihtoehto palauttaa arvo funktiosta on lähettää arvo
stdout
käyttämällä kaikua tai
printf
kuten alla on esitetty:
#!/bin/bash my_function () { local func_result="some result" echo "$func_result" } func_result="$(my_function)" echo $func_result
some result
Sen sijaan, että suorittaisimme vain toiminnon, joka tulostaa viestin stdout-tilaan, osoitamme funktion ulostulon
func_result
muuttujaan käyttämällä
$()
-komennon korvaamista. Muuttujaa voidaan myöhemmin käyttää tarpeen mukaan.
Argumenttien siirtäminen bashitoimintoihin
Jos haluat siirtää minkä tahansa määrän argumentteja bash-funktiolle, laita ne heti funktion nimen jälkeen, erotettuna välilyönnillä. On hyvä käytäntö lainata argumentit kaksinkertaisesti, jotta vältetään väitteen vääristyminen siinä olevien välilyöntien kanssa.
- Lähetyt parametrit ovat
$1,$2,$3,$3$n, joka vastaa parametrin sijaintia funktion nimen jälkeen.$0-muuttuja on varattu toiminnon nimelle.$#-Muuttuja pitää sisällään parametrien / argumenttien määrän,$*ja$@muuttujat sisältävät kaikki funktiolle siirretyt sijaintiparametrit / argumentit.- Kun kaksoislainataan,
"$*"laajenee yhdeksi välilyönnillä erotettuun merkkijonoon (IFS: n ensimmäinen merkki) -"$1 $2 $n".Kun kaksoismerkinnässä"$@"laajenee erillisiin merkkijonoihin -"$1" "$2" "$n".Jos ei noteerattu,$*ja$@ovat samat.
- Kun kaksoislainataan,
Tässä on esimerkki:
~ / Passing_arguments.sh
#!/bin/bash greeting () { echo "Hello $1" } greeting "Joe"
johtopäätös
Bash-toiminto on uudelleenkäytettävän koodin lohko, joka on suunniteltu suorittamaan tietty toiminto. Kun funktio on määritetty, sitä voidaan kutsua useita kertoja komentosarjan sisällä.
Voit myös lukea siitä, kuinka Bash-toimintoa käytetään ikimuistoisen pikakomennon luomiseen pidempään komentoon.
bash-terminaaliBash-taulukot
Taulukot ovat yksi käytetyimmistä ja perusteellisimmista tietorakenteista. Tässä artikkelissa kerrotaan Bash-taulukot ja selitetään, kuinka niitä käytetään Bash-skripteissäsi.
Bash silmukasta
Bash-komentosarjoissa on 3 perussilmukkakonstruktiota silmukalle, silmukalle ja silmukkaan saakka. Tässä opetusohjelmassa käsittelemme silmukoiden perusteet Bashissa sekä katkoksia ja jatkamme lauseita silmukan virtauksen muuttamiseksi.
Bash: liitä tiedostoon
Linuxissa on useita tapoja liittää teksti tiedostoon. Tämä artikkeli selittää joitain niistä.







