Bash skriptēšana — funkcijas
Bash skripts ir vienkārša teksta fails. Šajā failā ir dažādas komandas soli pa solim izpildei. Šīs komandas var ierakstīt tieši komandrindā, taču, raugoties no atkārtotas izmantošanas uztveres, ir lietderīgi visas savstarpēji saistītās komandas konkrētam uzdevumam glabāt vienā failā. Mēs varam izmantot šo failu, lai izpildītu komandu kopu vienu vai vairākas reizes atbilstoši mūsu prasībām.
Šajā rakstā mēs apspriedīsim Bash Scripting funkciju izmantošanu.
Programmēšanā funkcija ir koda bloks, kas veic dažus uzdevumus, un uzdevumu veikšanai to var izsaukt vairākas reizes. Tas nodrošina programmas modularitāti un samazina koda garumu. Vienkāršāko funkcijas izmantošanas piemēru Bash skriptēšanā var sniegt kā -
Skripta piemērs:
#!/bin/bash #It is a function myFunction () { echo Hello World from techcodeview.com } #function call myFunction Izvade:
Hello World from techcodeview.com
Iepriekš minētajā piemērā parādīta funkcija, kas izsauc kaut ko izdrukā. Tātad pamata sintakse funkciju rakstīšanai Bash skriptā būs
Sintakse:
# for defining function_name(){ commands ..... } function_name # for calling Bez tam mums var būt arī funkcijas ar nosūtāmajiem argumentiem un atgriešanas vērtībām. Tagad apspriedīsim tos.
Funkcijas ar piespēlētiem argumentiem
Mēs varam pievienot funkcijai argumentus vai parametrus un, izmantojot tos, nodot datus funkcijai, lai funkcija varētu darboties ar šiem datiem. Bash skriptēšanā mēs varam izmantot šādu sintaksi, lai rakstītu funkciju ar nodošanas argumentiem.
Funkciju sintakse ar nododamiem argumentiem:
#for defining function_name(){ ..... parameter_1 = $1 parameter_2 = $2 . . . parameter_n = $n .... commands ..... } #for calling function_name p1 p2 ....pn Mēs varam tieši nodot argumentus, izsaucot funkciju, un varam tiem piekļūt ar $1, $2 … $n funkcijas ietvaros. Apskatīsim piemēru, lai to labāk izprastu.
Funkciju piemērs ar nodošanas argumentiem:
#!/bin/bash add_two_num(){ local sum=$(($1+$2)) echo sum of $1 and $2 is $sum } add_two_num 2 3 Funkciju izvade ar garāmejošiem argumentiem:
sum of 2 and 3 is 5
Iepriekš ir skripts divu skaitļu pievienošanai. Šeit mēs esam snieguši 2 un 3 kā argumentus. Mēs esam tiem piekļuvuši, izmantojot funkciju $1 un $2, un aprēķinājuši to summu un izdrukājuši to terminālī. Zemāk ir termināļa čaulas attēlojums pēc skripta izpildes -
Funkcijas ar atdeves vērtībām
Atgriešanās vērtību izveido un atgriež izsaukšanas metodei, izmantojot funkciju, kad tā ir pabeigusi izpildi. Atgriešanas vērtību var izmantot, lai kopīgotu iegūto rezultātu vai kādu statusa kodu par to, vai viena funkcija ir veiksmīgi izpildīta. Bash skriptēšanā atgriešanas vērtība tiek piešķirta $? mainīgs.
Tā paša piemērs ir sniegts zemāk -
Funkciju ar atgriešanas vērtībām piemērs:
#!/bin/bash myfun(){ return 7 } myfun echo The return value is $? Funkciju izvade ar atdeves vērtībām:
The return value is 7
Zemāk ir termināļa čaulas izvade pēc skripta izpildes -
Tagad modificēsim iepriekšējo divu skaitļu skripta summu.
Modificēts kods:
#!/bin/bash myfun(){ return $(($1+$2)) } add_two_num 2 3 echo The sum is $? Modificētā koda izvade:
The sum is 5
Tagad iepriekš minētais kods ir piemērs gan parametru, gan atgriešanas vērtības izmantošanai Bash skripta funkcijā.
Zemāk ir termināļa čaulas attēlojums pēc skripta izpildes -
Mainīgais tvērums
Programmas vai skripta darbības joma ir reģions, kurā pastāv mainīgie. Ja mainīgais ir deklarēts funkcijā, tad tas parasti ir lokāls mainīgais, un, ja tas ir deklarēts ārpusē, tas ir globāls mainīgais. Bash skripta gadījumā šī koncepcija ir nedaudz atšķirīga, šeit jebkurš mainīgais neatkarīgi no tā, vai tas pēc noklusējuma ir ierakstīts funkcijā vai ārpus funkcijas, ir globāls mainīgais. Ja mēs vēlamies izveidot vietējo mainīgo, mums ir jāizmanto atslēgvārds local.
Labākā prakse ir vienmēr funkcijā izmantot lokālo mainīgo, lai izvairītos no nevajadzīgas neskaidrības.
Tā paša piemērs ir sniegts zemāk -
Mainīgā tvēruma piemērs:
#!/bin/bash var1='Apple' #global variable myfun(){ local var2='Banana' #local variable var3='Cherry' #global variable echo 'The name of first fruit is $var1' echo 'The name of second fruit is $var2' } myfun #calling function echo 'The name of first fruit is $var1' #trying to access local variable echo 'The name of second fruit is $var2' echo 'The name of third fruit is $var3' Mainīgā tvēruma izvade:
The name of first fruit is Apple The name of second fruit is Banana The name of first fruit is Apple The name of second fruit is The name of third fruit is Cherry
Šajā iepriekš minētajā piemērā var2 ir lokāls mainīgais, tāpēc, kad mēs tam piekļūstam no funkcijas, tas darbojas labi, bet, mēģinot tai piekļūt ārpus funkcijas, tas izvadā dod mums tukšu rezultātu.
No otras puses, atšķirībā no programmēšanas valodām, lai gan var3 ir definēts funkcijā, tas tomēr darbojas kā globāls mainīgais un tam var piekļūt ārpus funkcijas. Zemāk ir termināļa čaulas attēlojums pēc skripta izpildes -
Pārvaldošās komandas
Ir iespējams izmantot funkciju ar tādu pašu nosaukumu kā komandai. Tas ir noderīgi, ja vēlamies palaist komandu ar konkrētām opcijām vai vēlamies iegūt tās pielāgotu izdevumu.
Tā paša piemērs ir sniegts zemāk -
Pārvaldošo komandu piemērs:
#!/bin/bash #overriding command echo(){ builtin echo 'The name is : $1' } echo 'Satyajit Ghosh' Noteicošo komandu izvade:
The name is : Satyajit Ghosh
Šajā piemērā mēs esam ignorējuši atbalss komandu. Tagad pirms dotās virknes drukāšanas tas pievieno virkni vēl dažus vārdus un pēc tam izdrukā. Zemāk ir termināļa čaulas attēlojums pēc skripta izpildes -