Програмирање у басх - 2. део

Други део овога мини-туториал програмирање у Басх, где учимо да користимо циклуса и друге алате који ће нам помоћи да побољшамо функционалности нашег скрипте.

Ако је условно

Функција Иф је да примени филтер и изврши операцију или задатак за сваку примењену врсту филтера. Његова структура је следећа:

Ако је [услов]; затим команде елиф [услов]; затим елсе наредбе; фи команде

Пример је приказан поред петље Фор у одговарајућем одељку.

Циклуси

1. While: Ова петља ће извршити све команде наведене између do и done све док је услов тачан. Ако желите да проследите операторе поређења, израз мора бити затворен у угласте заграде.

док ЦОНДИТИОН / ЦОММАНД раде наредбе извршене

Пример: табела множења броја

#! / бин / басх Кс = 1 ецхо "Унесите број и притисните ЕНТЕР" прочитајте М # Петља контролише да је Кс мање или једнако 10 док [$ Кс –ле 10] до # У Р чувамо множење Кс са МР = $ [Кс * М] # Ово множење је одштампано на одјеку екрана „$ М * $ Кс = $ Р“ # С дозволом, повећавамо вредност Кс за 1 јединицу нека је Кс = $ Кс + 1 готово

2. За: чува листу елемената у променљивој, која ће се користити за извршавање одређених операција са сваком петљом.

за ВАРИАБЛЕ у ЕЛЕМЕНТС радите наредбе извршене

Пример: програм који копира датотеку из једне фасцикле у другу, замењујући стару датотеку.

# / бин / басх # Успостављамо директоријуме извора и одредишта ОРИГИН = / хоме / усер / Довнлоадс ДЕСТИНАТИОН = / хоме / усер / Доцументс # Позиционирамо се у изворни цд $ ОРИГИН # Од свих датотека желимо само ону која је # позовите ФИЛЕ фор ФИЛЕ у * до АРЦХ-ДЕСТИНАТИОН = "$ ДЕСТИНАТИОН / $ ФИЛЕ" # -ф филтрира нас редовне датотеке, јер директоријуми # ништа добро за нас. –Не филтрира # датотеке „новије“ од оних # које се налазе у одредишном директоријуму ако је [-ф $ ФИЛЕ] && [$ ФИЛЕ –нт $ АРЦХ-ДЕСТИНАТИОН]; затим ехо "Копирање $ ФИЛЕ ..." # копирамо датотеку са цп цп $ ФИЛЕ $ АРЦХ-ДЕСТИНАТИОН фи готово #Ве цд за излаз из директоријума цд

Још један пример: скрипта у којој корисник мора да погађа случајан број који генерише рачунар.

# / бин / басх # Случајан број се генерише од 1 до 10, # се чува у СЛУЧАЈНОМ СЛУЧАЈУ = $ [$ РАНДОМ% 10 + 1] док [1] ​​до ецхо –н "Унесите број:" прочитајте НУМ # Упоредите да ли је број који је корисник одабрао # једнак СЛУЧАЈНОМ; не заборавите да користите $ за процену # вредности променљивих, а не њихових имена ако [„$ НУМ –ек“ $ РАНДОМ “]; затим одјекните "Добро сте схватили!" #бреак омогућава завршавање петље током прекида #Ако је број мањи од РАНДОМ елиф [“$ НУМ –гт“ $ РАНДОМ “]; онда одјекни "Мање је" "Ако не, већи је од СЛУЧАЈНОГ, иначе одјекује" ТО ЈЕ веће "

3. Until: прилично сличан по структури као While, осим што се код увек извршава док је услов негативно оцењен, односно програм наставља да се извршава „док се услов не догоди“

док ЦОНДИТИОН / ЦОММАНД не изврше наредбе

Пример: штампајте бројеве 10-20 у опадајућем редоследу

#! / бин / басх ЦОНТ = 20 # Све док је бројач мањи од 10 (-лт, "ниже # него"), код се извршава до [$ ЦОНТ -лт 10]; ехо "ЦОУНТЕР $ ЦОНТ" #А ЦОНТ се одузима јединици нека је ЦОНТ- = 1 готово

4. Селект: Ова последња петља је посебан случај, јер се генерално користи за брзо креирање менија. Ради слично као и петља For.

изаберите ВАРИАБЛЕ на ЛИСТУ извршених команди

Пример: дајте кориснику могућност да настави или заврши скрипту.

#! / бин / басх #итем је променљива која одговара на оно што # корисник одабере, Настави и Заврши су # опције које су му доступне, мада се могу додати и друге опције завршите програм, а затим са прекидом излазимо из циклуса. иф [$ итем = "Финисх"]; па прекид фи готов
Хвала Јуан Царлос Ортиз!

Додај као жељени извор на Гуглу