په باش کې د افعال رامینځته کولو او تلیفون کولو څرنګوالي لپاره یو ګړندي لارښود.
فنکشن د بیا کارونې وړ کوډ یو بلاک دی چې د ځینې عمل ترسره کولو لپاره کارول کیږي. د دندو سره ، موږ غوره ماډولیت او د کوډ بیا کارولو لوړه درجه ترلاسه کوو.
بش ځینې جوړ شوي دندې چمتو کوي لکه | echo
او read
، مګر موږ کولی شو خپل افعال هم رامینځته کړو.
دوه لارې شتون لري چې موږ یې په بش کې دندې رامینځته کولی شو:
یوه لاره دا ده چې یوازې د فنکشن نوم وکاروئ ، د بیلګې په توګه:
functionName(){ // scope of function }
د تړون نسخه:
functionName(){ echo 'hello'; }
بله لاره د | _ + + _ | په کارولو سره د فن اعلان کول دي کلیدي ټکي:
function
د تړون نسخه:
function functionName { // scope of function }
په پام کې ونیسئ چې څنګه موږ function functionName { echo 'hello'; }
ته اړتیا نه لرو کله چې | _ _ _ _ | وکاروئ کلیدي ټکی د فنکشن جوړولو لپاره.
د بش دندو په اړه مهم ټکي یادونه:
()
مثال:
لاندې کوډ یو فعالیت رامینځته کوي چې کنسول ته 'سلام نړۍ' چاپوي. د فنکشن نوم ویل کیږي چاپ :
function
موږ پورتني فعالیت څنګه وایو؟ ټول هغه څه چې تاسو یې په خپل باش سکریپټ کې کولو ته اړتیا لرئ د فنکشن نوم لیکل دي او دا به ویل کیږي.
د مثال په توګه:
{}
محصول:
;
پورتنی فعالیت | _ _ _ _ | هیڅ پیرامیټ نلري. هرکله چې موږ ورته ووایو ، موږ د 'هیلو نړۍ' محصول ترلاسه کوو. مګر څه که موږ وغواړو چې نور عام فعالیت رامینځته کړو؟ د مثال په توګه موږ کولی شو فنکشن د ځینې دلیل سره غږو او دا به هغه څه چاپ کړي چې موږ ورته لیږو.
د دې کولو دوه لارې شتون لري.
لومړی موږ کولی شو | #!/bin/bash printHello(){
د هغه دلیلونو چاپولو لپاره فعالیت کوي چې دې ته سپارل کیږي:
echo 'Hello World!' }
د مثال په توګه:
#!/bin/bash printHello(){
echo 'Hello World!' } # Call printHello function from anywhere in the script by writing the name printHello
محصول:
'Hello World'
پام وکړئ چې څنګه دریم چاپ بیان printHello()
یوازې تولید شوی 'سلام ، زه'.
دا ځکه چې زموږ فعالیت یوازې 1 پیرامیټر اخیستو لپاره ډیزاین شوی دی printHello()
د 'زه کوډ ورکول خوښوم!' په حقیقت کې 3 پیرامیټونه دي.
که موږ وغواړو چې دا ټول چاپ کړو موږ به اړتیا ولرو چې د متن شاوخوا نرخونه ولرو
د مثال په توګه:
#!/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
د بش افعال کولی شي ارزښتونه هم راوباسي.
د مثال په توګه:
#!/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