Bash funksiyaları necə yaradılır və çağırılır

Bash-da funksiyaların yaradılması və çağırılması barədə qısa məlumat.

Funksiya, bəzi əməliyyatları yerinə yetirmək üçün istifadə olunan yenidən istifadə edilə bilən kod blokudur. Funksiyalarla daha yaxşı modulluq və kodun yüksək dərəcədə istifadəsini əldə edirik.

Bash echo kimi bəzi daxili funksiyaları təmin edir və read, lakin öz funksiyalarımızı da yarada bilərik.




Bash-da bir iş yaratmaq

Bash'da funksiyalar yaratmağımızın iki yolu var:

Bir üsul yalnız funksiya adını istifadə etməkdir, məsələn:


functionName(){ // scope of function }

Kompakt versiya:



functionName(){ echo 'hello'; }

Başqa bir yol function istifadə edərək bir funksiyanın elan edilməsidir açar söz:

function functionName { // scope of function }

Kompakt versiya:

function functionName { echo 'hello'; }

() -Ə necə ehtiyacımız olmadığına diqqət yetirin function istifadə edərkən bir funksiya yaratmaq üçün açar söz.


Bash funksiyaları ilə bağlı vacib məqamlar:

  • Buruq diş telləri arasındakı kod {} funksiya gövdəsi və əhatə dairəsidir
  • Bir funksiyaya zəng edərkən, yalnız baş skriptinin istənilən yerindən funksiya adını istifadə edirik
  • İstifadə olunmadan əvvəl funksiya müəyyənləşdirilməlidir
  • Yığcam versiyadan istifadə edərkən son əmrdə nöqtəli vergül ; olmalıdır

Misal:

Aşağıdakı kod konsolda “Salam Dünya” yazdıran bir funksiya yaradır. Funksiyanın adı deyilir çap salam :

#!/bin/bash printHello(){
echo 'Hello World!' }


Bash-da bir işə zəng

Yuxarıdakı funksiyanı necə çağırırıq? Baş ssenarinizdə yalnız funksiyanın adını yazmaq lazımdır və buna ad veriləcəkdir.


Misal üçün:

#!/bin/bash printHello(){
echo 'Hello World!' } # Call printHello function from anywhere in the script by writing the name printHello

Çıxış:

'Hello World'

Keçirilən mübahisələr

Yuxarıdakı funksiya printHello() heç bir parametr yoxdur. Nə vaxt zəng etsək, “Salam Dünya” nəticəsini alırıq. Ancaq daha ümumi bir funksiya yaratmaq istəsəydik nə olardı? Məsələn, funksiyanı bəzi arqumentlərlə zəng edə bilərik və göndərdiklərimizi çap edəcəkdir.

Bunun iki yolu var.


Əvvəlcə printHello() dəyişdirə bilərik ona ötürülən arqumentləri çap etmək funksiyası:

Misal üçün:

#!/bin/bash printAny(){
echo 'Hello ' $1 } printAny World printAny DevQa printAny I love coding!

Çıxış:

Hello World Hello DevQA Hello I

Üçüncü çap ifadəsinin necə olduğuna diqqət yetirin printAny I love coding! yalnız 'Salam, mən' çıxdı.


Bunun səbəbi, funksiyamızın yalnız 1 parametr almaq üçün nəzərdə tutulmuşdur $1. 'Kodlamağı sevirəm!' Sözü əslində 3 parametrdir.

Hamısını çap etmək istəsək, mətnin ətrafında sitatlar qoymalıydıq

Misal üçün:

#!/bin/bash printAny(){
echo 'Hello ' $1 } printAny 'I love coding!'

Çıxış:

Hello I love coding

Başqa bir nümunə, rəqəmlərlə də keçə bilərik:

#!/bin/bash add() {
result=$(($1 + $2))
echo 'Result is: $result' } add 1 2

Çıxış:

Result is: 3

Qaytarılan dəyərlər

Baş funksiyaları dəyərləri də qaytara bilər.

Misal üçün:

#!/bin/bash add() {
result=$(($1 + $2)) } add 1 2 echo 'The sum is: '$result

Çıxış:

The sum is: 3

Funksiyadan dəyərləri qaytarmağın başqa bir yolu, nəticəni lazım olduqda və istifadə oluna bilən dəyişənə təyin etməkdir.

Misal üçün:

#!/bin/bash add () { local result=$(($1 + $2)) echo '$result' } result='$(add 1 2)' echo 'The sum is: '$result

Çıxış:

The sum is: 3