Բաշում գործառույթներ ստեղծելու և զանգահարելու արագ ուղեցույց:
Ֆունկցիան բազմակի օգտագործման կոդի բլոկ է, որն օգտագործվում է ինչ-որ գործողություն կատարելու համար: Գործառույթներով մենք ստանում ենք ավելի լավ մոդուլյարություն և կոդի վերաօգտագործման բարձր աստիճան:
Բաշը տրամադրում է որոշ ներկառուցված գործառույթներ, ինչպիսիք են echo
և read
, բայց մենք կարող ենք նաև ստեղծել մեր սեփական գործառույթները:
Բաշում գործառույթներ ստեղծելու երկու եղանակ կա.
Մեկ միջոց է պարզապես օգտագործել ֆունկցիայի անունը, օրինակ ՝
functionName(){ // scope of function }
Կոմպակտ տարբերակ.
functionName(){ echo 'hello'; }
Մեկ այլ եղանակ է `գործառույթը հայտարարել` օգտագործելով function
հիմնաբառ.
function functionName { // scope of function }
Կոմպակտ տարբերակ.
function functionName { echo 'hello'; }
Ուշադրություն դարձրեք, թե ինչպես մեզ պետք չէ ()
function
- ն օգտագործելիս գործառույթ ստեղծելու համար հիմնաբառ.
Կարևոր կետեր, որոնք պետք է նշել Bash գործառույթների մասին.
{}
գործառույթի մարմինն ու շրջանակն է;
Օրինակ:
Հետևյալ կոդը ստեղծում է մի ֆունկցիա, որը տպում է «Բարև աշխարհ» վահանակին: Գործառույթի անունը կոչվում է տպել Ողջույն :
#!/bin/bash printHello(){
echo 'Hello World!' }
Ինչպե՞ս ենք անվանում վերը նշված գործառույթը: Այն ամենը, ինչ դուք պետք է անեք ձեր bash գրության մեջ, գրել ֆունկցիայի անունը, և այն կկոչվի:
Օրինակ:
#!/bin/bash printHello(){
echo 'Hello World!' } # Call printHello function from anywhere in the script by writing the name printHello
Արդյունք:
'Hello World'
Վերոնշյալ գործառույթը printHello()
չունի որևէ պարամետր: Ytանկացած ժամանակ մենք այն կոչում ենք, մենք ստանում ենք «Բարև աշխարհ» արդյունքը: Բայց ի՞նչ կլինի, եթե մենք ցանկանանք ավելի ընդհանուր ֆունկցիա ստեղծել: Օրինակ, մենք կարող ենք գործառույթը զանգահարել որոշ փաստարկներով և այն կտպագրի այն, ինչ մենք ուղարկում ենք դրան:
Դա անելու երկու եղանակ կա:
Սկզբից մենք կարող ենք փոփոխել printHello()
գործառույթը ՝ իրեն փոխանցված փաստարկները տպելու համար.
Օրինակ:
#!/bin/bash printAny(){
echo 'Hello ' $1 } printAny World printAny DevQa printAny I love coding!
Արդյունք:
Hello World Hello DevQA Hello I
Ուշադրություն դարձրեք, թե ինչպես է երրորդ տպագիր հայտարարությունը printAny I love coding!
թողարկեց միայն «Բարև, ես»:
Դա պայմանավորված է նրանով, որ մեր ֆունկցիան նախատեսված է վերցնել միայն 1 պարամետր $1
: «Ես սիրում եմ կոդավորումը» բառը: իրականում 3 պարամետր է:
Եթե մենք ցանկանայինք տպել այն ամենը, մեզ հարկավոր էր մեջբերումներ տեղադրել տեքստի շուրջ
Օրինակ:
#!/bin/bash printAny(){
echo 'Hello ' $1 } printAny 'I love coding!'
Արդյունք:
Hello I love coding
Մեկ այլ օրինակ, մենք կարող ենք նաև թվանշաններով փոխանցել.
#!/bin/bash add() {
result=$(($1 + $2))
echo 'Result is: $result' } add 1 2
Արդյունք:
Result is: 3
Bash գործառույթները կարող են նաև վերադարձնել արժեքները:
Օրինակ:
#!/bin/bash add() {
result=$(($1 + $2)) } add 1 2 echo 'The sum is: '$result
Արդյունք:
The sum is: 3
Ֆունկցիայից արժեքները վերադարձնելու մեկ այլ միջոց է արդյունքը վերագրելը փոփոխականին, որը կարող է օգտագործվել ըստ անհրաժեշտության և երբ:
Օրինակ:
#!/bin/bash add () { local result=$(($1 + $2)) echo '$result' } result='$(add 1 2)' echo 'The sum is: '$result
Արդյունք:
The sum is: 3