Как да напишете IF-изявления в баш-скрипт

Команди, синтаксис и примери

С if-statement, което е вид условно изявление, можете да изпълнявате различни действия в зависимост от конкретните условия. Това ефективно дава на системата възможността да взема решения.

Пример за най-простата форма на if-statement ще бъде:

count = 5 ако [$ count == 5] след това ехо "$ count" fi

В този пример променливата "count" се използва за определяне на условие, което се използва като част от if-statement. Преди да се изпълни if-statement, променливата "count" получава стойност "5". Тогава if-statement проверява дали стойността на "count" е "5". Ако това е така, изявлението между ключовите думи "then" и "fi" се изпълнява, в противен случай се изпълняват всички изявления, следващи if-statement. Ключовата дума "fi" е "if", написана назад. Базисният скриптов език използва тази конвенция, за да маркира края на сложен израз, такъв израз в if-statement или case-statements.

Израза "ехо" отпечатва своя аргумент, в този случай стойността на променливата "count", в прозореца на терминала. Отпечатването на кода между ключовите думи на if-statement подобрява четливостта, но не е необходимо.

Ако имате ситуация, в която част от кода трябва да бъде изпълнена само ако дадено условие не е вярно, можете да използвате ключовата дума "else" в изразът if, както в този пример:

count = 5 ако [$ count == 5] след това ехо "$ count" else echo "count не е 5" fi

Ако условието "$ count == 5" е вярно, системата отпечатва стойността на променливата "count", в противен случай тя отпечатва низа "count not 5".

Ако искате да направите разлика между множество условия, можете да използвате ключовата дума "elif", която се получава от "else if", както в този пример:

ако [$ count == 5] след това ехо "count is five" elif [$ count == 6] след това echo "count is six" else echo "none of the above" fi

Ако "count" е "5", системата извежда "count five". Ако "count" не е "5", а "6", системата отпечатва "count is six". Ако не е нито "5", нито "6", системата отпечатва "нито един от горните".

Както вероятно сте предположили, можете да имате няколко клаузи "elif". Пример с множество условия "elif" ще бъде:

ако [$ count == 5] след това ехо "count is five" elif [$ count == 6], след това echo "count is six" elif [$ count == 7] = 8] след това ехо "броят е осем" elif [$ count == 9] след това echo "count е девет" else echo "none of the above" fi

По-компактен начин да се напишат такива твърдения при множество условия е методът на случая . Той функционира подобно на декларацията if с множество клаузи "elif", но е по-сбита. Например, горепосочената част от кода може да бъде преработена с израза "case", както следва:

случай "$ count" в 5) echo "count is five" ;; 6) ехо "броят е шест"; 7) ехо "броят е седем"; 8) ехо "броят е осем"; 9) ехо "броят е девет"; *) ехо "нито един от горните" esac

If-statements често се използват вътре в for-loops или while-loops, както в този пример:

count = 1 done = 0 докато [$ count -le 9] прави сън 1 ((брой ++)) ако [$ count == 5] продължи да е echo "$ count"

Можете също така да имате вложени, ако изявления. Най-просто вложен, ако изявлението е на формата: ако ... тогава ... друго ... ако ... тогава ... fi ... fi. Все пак, ако-изявлението може да бъде вместено с произволна сложност.

Вижте също и как да предадете аргументи на скрипт bash , който показва как да използвате условни условия за обработка на параметри, предавани от командния ред.

Башевата обвивка осигурява други конструктивни конструкции, като например циркулярни цикли , макар и цикли и аритметични изрази .