Када прегледате све примере Авка које смо до сада обрадили, од самог почетка Авк серија, приметићете да се све команде у различитим примерима извршавају узастопно, то јест једна за другом. Али у одређеним ситуацијама можда бисмо желели да покренемо неке операције филтрирања текста на основу неких услова, ту се поставља приступ исказима управљања протоком.
Постоје различите изјаве о контроли протока у Авк програмирање а они укључују:
Међутим, за опсег ове серије објаснићемо: ако друго
, за
, док
и учини док
изјаве. Запамтите да смо већ прошли како користити следећу изјаву у 6. делу овога Авк серија.
Очекивана синтакса датотеке ако изјава
сличан је оном љуске ако изјава:
иф (услов1) {радње1. } елсе {акције2. }
У горњој синтакси, стање1
и стање2
су изрази Авк, и акције1
и акције2
су Авк команде које се извршавају када су испуњени одговарајући услови.
Када стање1 је задовољан, што значи да је истина акције1 се извршава и ако изјава излази, иначе акције2 се извршава.
Тхе ако изјава такође се може проширити на а иф-елсе_иф-елсе
следећа изјава:
иф (услов1) {радње1. } елсе иф (услови2) {акције2. } елсе {акције3. }
За горњи образац, ако стање1 истина је, дакле акције1 се извршава и ако изјава излази, иначе стање2 се вреднује и ако је тачно, онда акције2 се извршава и ако изјава излази. Међутим, када стање2 онда је лажно, акције3 се извршава и ако изјава излази.
Ево примера примене ако изјаве, имамо списак корисника И њихови старости сачувано у датотеци, усерс.ткт.
Желимо да одштампамо изјаву у којој се наводи име корисника и да ли је његова старост мања или већа 25 година стар.
[заштићена е -пошта] ~ $цат усерс.ткт
Сарах Л 35 Ф. Аарон Кили 40 М. Јохн Доо 20 М. Кили Сет 49 М.
Можемо написати кратку скрипту шкољке за извршавање горе наведеног посла, ево садржаја скрипте:
#!/бин/басх. авк '{иф ($ 3 <= 25) {принт "Усер", $ 1, $ 2, "има мање од 25 година."; } елсе {принт "Корисник", $ 1, $ 2, "има више од 25 година"; } } '~/усерс.ткт.
Затим сачувајте датотеку и изађите, учините скрипту извршном и покрените је на следећи начин:
$ цхмод +к тест.сх. $ ./тест.сх.
Корисница Сарах Л има више од 25 година. Корисник Аарон Кили има више од 25 година. Корисник Јохн Доо има мање од 25 година. Корисница Кили Сетх има више од 25 година.
У случају да желите да извршите неке Авк команде у петљи, тада ће се за изјаву нуди вам одговарајући начин да то учините, са синтаксом испод:
Овде је приступ једноставно дефинисан употребом бројача за контролу извршавања петље, прво морате иницијализујте бројач, а затим га покрените према испитном услову, ако је тачно, извршите радње и на крају повећајте бројач. Петља се прекида када бројач не задовољава услов.
за (противиницијализација; тест услов; контра-прираст) {радње. }
Следећа команда Авк показује како се за изјаву ради, где желимо да одштампамо бројеве 0-10:
$ авк 'БЕГИН {фор (цоунтер = 0; цоунтер <= 10; цоунтер ++) {принт цоунтер}}'
0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Конвенционална синтакса датотеке док изјава је као што следи:
вхиле (услов) {радње. }
Услов је Авк израз, а акције су редови Авк наредби које се извршавају када је услов тачан.
Испод је скрипта која илуструје употребу док изјава за штампање бројева 0-10:
#!/бин/басх. авк 'БЕГИН {цоунтер = 0; вхиле (бројач <= 10) {испис бројача; бројач+= 1; } }
Сачувајте датотеку и учините скрипту извршном, а затим је покрените:
$ цхмод +к тест.сх. $ ./тест.сх.
0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
То је модификација док изјава горе, са следећом основном синтаксом:
уради {акције. } вхиле (услов)
Мала разлика је у томе што, под учини док, команде Авк се извршавају пре оцењивања услова. Користећи сам пример испод док изјава горе, можемо илустровати употребу учини док променом команде Авк у тест.сх скрипта на следећи начин:
#!/бин/басх авк 'БЕГИН {цоунтер = 0; до {принт бројач; бројач+= 1; } вхиле (бројач <= 10)} '
Након измене скрипте, сачувајте датотеку и изађите. Затим учините скрипту извршном и извршите је на следећи начин:
$ цхмод +к тест.сх. $ ./тест.сх.
0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Ово није свеобухватан водич у вези са изјавама о контроли протока Авк, као што сам раније поменуо, постоји неколико других изјаве о контроли протока у Авку.
Ипак, овај део Авк серија требало би да вам да јасну фундаменталну идеју о томе како се извршавање Авк команди може контролисати на основу одређених услова.
Такође можете објаснити више о осталим изјавама о контроли протока да бисте стекли боље разумевање о теми. Коначно, у следећем одељку Авк серије прећи ћемо на писање Авк скрипти.