Bir Bash-skriptdə IF-hesabatlarını necə yazmaq olar?

Komutlar, sintaksis və nümunələr

Şərtli bəyanatın bir növü olan if-bəyanatı ilə müəyyən şərtlərdən asılı olaraq müxtəlif tədbirlər həyata keçirə bilərsiniz. Bu, sistemin qərar qəbul etmək qabiliyyətini effektiv bir şəkildə verir.

Bir if-bəyanatın ən sadə forması nümunəsi:

count = 5 [$ count == 5] sonra "$ count" fi-yə yansın

Bu misalda dəyişən "count" if-ifadəsinin bir hissəsi kimi istifadə olunan bir vəziyyəti müəyyən etmək üçün istifadə olunur. If-bəyanatın yerinə yetirilməsindən əvvəl, dəyişən "say" sayəsində "5" dəyəri verilir. If-bəyanat sonra "say" ın dəyərinin "5" olub olmadığını yoxlayır. Əgər belədirsə, "o zaman" və "fi" sözləri arasındakı bəyanat yerinə yetirilir. "Fi" sözü "if" sözündən geriyə yazıldı. Bash scripting dili, bu konvensiyanı mürəkkəb ifadənin sonunu, if-ifadəsi və ya halda-ifadələrini qeyd etmək üçün istifadə edir.

"Eko" ifadəsi, bu halda, dəyişən "count" ın dəyərini terminal pəncərəsinə yazır. Kodun if-ifadəsinin açar sözləri arasında kodun cədvəli oxunabilirliyi yaxşılaşdırır, lakin zəruri deyildir.

Kodun bir hissəsi yalnız bir şərt doğru olmadıqda yerinə yetirilməli vəziyyətdədirsə, bu nümunədə olduğu kimi if-ifadəsində "else" sözünü istifadə edə bilərsiniz:

count = 5 [$ count == 5] sonra "echo" echo "$ count" else echo "count is 5" fi

Əgər "$ count == 5" şərti düzgündürsə, sistem "count" dəyişəninin dəyərini yazır, əks halda "say deyil 5" simli yazır.

Bir çox şərtlər arasında fərq qoymaq istəyirsinizsə, bu nümunədə olduğu kimi "else if" dan əldə edilən "elif" sözünü istifadə edə bilərsiniz:

əgər [$ count == 5] sonra "count is five" elif [$ count == 6] əksinə, "count is six" başqa echo "yuxarıda heç biri" fi

"Sayı" "5" olarsa, sistem "sayım beşdir" yazır. Əgər "count" "5" deyil, "6" deyilsə, sistem "saymaq altı" yazır. Əgər "5" və "6" olmasa, sistem "yuxarıdan heç biri" yazmır.

Güman etdiyiniz kimi, hər hansı bir "elif" maddəsi ola bilər. Bir çox "elif" şərtləri olan bir nümunə:

[$ count == 5] sonra "count is five" elif [$ count == 6], sonra echo "count is six" elif [$ count == 7] sonra echo "count is seven" elif [$ count = = 8] sonra yankı "sayım səkkiz" elif [$ count == 9] sonra echo "count is nine" else echo "yuxarıda heç biri" fi

Bir çox şərtlərlə bu cür bəyanatları yazmaq üçün daha kompakt bir üsul belədir . Bir çox "elif" maddəsi ilə if-bəyanata bənzəyir, lakin daha qısadır. Məsələn, yuxarıda göstərilən kod parçası "halda" ifadəsi ilə yenidən yazıla bilər:

halda "$ count" 5) echo "count is five"; 6) yankı "saymaq altı"; 7) yankı "saymaq yedi"; 8) yankı "saymaq səkkiz"; 9) yankı "saymaq doqquz"; *) yuxarıda "heç biri" esac echo

Əgər bu nümunədə olduğu kimi, ifadələr tez-tez for-loops və ya while-loops daxilində istifadə olunur:

[$ count -le 9] 1-i (count ++), əgər [$ count == 5] davam edərsə, count = 1 = 0 = "$ count" echo tamamlandı

Siz də ifadələriniz varsa içə bilərsiniz. Ən sadə iç içə if ifadəsi şəklindədir: əgər ... sonra ... başqa ... əgər ... sonra ... fi ... fi. Bununla belə, if-bəyanat özbaşına mürəkkəbliyi ilə nested bilər.

Komut satırından keçən parametrləri işləyəcək şərtləri necə istifadə edəcəyini göstərən bir bas skriptə necə dəlilləri keçməyini baxın.

Bash kabuğu digər loinqlər , for -loops , və aritmetik ifadələr kimi digər proqramlaşdırma konstruksiyalarını təmin edir.