Како користити БАСХ за петљу



Испробајте Наш Инструмент За Елиминисање Проблема

Један од најосновнијих трикова приликом израде басх скрипти укључује израду петље тако да се одређени задатак може извршити аутоматски неколико пута. На крају, петља ће достићи унапред одређени услов испитивања и изненада ће престати да се извршава. Петље попут ове савршено ће радити у басху на Линуку и мацОС-у, као и у басх љусци унутар Виндовс-а 10, па чак и у разним љускама у ФрееБСД-у. Наравно, у било коју петљу можете да напишете било коју наредбу коју желите и да наставите да траје било који процес колико год желите. Иако ћемо написати неке крајње једноставне петље, ове вештине можете користити за писање свих врста скрипти које желите.



Постоји много начина да започнете писати скрипту, али за ову расправу претпоставит ћемо да сте отворили наредбени редак било претраживањем терминала на цртици, кликом на њега у КДЕ, МАТЕ, ЛКС или Вхискер изборницима или држањем Цтрл, Алт и Т истовремено. Иако ћемо о уредницима ви / вим и нано разговарати као о уредницима, питање који ће уредник користити прилично је лично и могли бисте да радите са оним што вам прија.



Метод 1: Лооп до

Можда најосновнија петља у басху је лооп. Наставиће да извршава наредбе док тестни услов који поставите не постане тачан. Претпоставићемо да сте користили или нано или ви за отварање непостојеће датотеке која се зове тилл.сх и спремни сте да у њу убаците нови текст. Направићемо само нешто што броји до 20 на вашем терминалу да би било лако у почетку.



За почетак укуцајте следеће:

#! / бин / басх

н = 0



до [$ н -гт 20]

урадите

ецхо $ н

((н ++))

Готово

Ако користите нано, сачувајте га тако што ћете притиснути Цтрл и притиснути О и на крају Кс за излаз. Корисници ви ће желети да притисну есцапе, а затим укуцају: вк да би сачували и изашли.

Следећи тип цхмод + к докЛооп на упит да бисте је учинили извршном, а затим откуцајте ./унтилЛооп да га покрене. Једном када се покрене, петља ће наставити исписивати нове бројеве на вашем терминалу све док н променљива не достигне 20.

Иначе, први ред говори вашем окружењу коју шкољку треба учитати када радите са овим скриптама. Неки програмери саветују само коришћење #! / Бин / сх како би се осигурало да се ваша скрипта придржава одређених ПОСИКС стандарда, али ове једноставне скрипте не би требало да имају проблема са великом већином модерних система.

2. метод: Тхе фор Лооп

Петља фор прегледава сваку ставку на датој листи, а затим извршава задати скуп наредби на тој листи. Направићемо један који ће одштампати нека имена оперативних система, али имајте на уму да бисте могли да учините било шта с овим ако желите.

Укуцајте било нано форЛооп или ми форЛооп у командној линији и почните да уносите следећу скрипту. Корисници ви ће морати да уђу у режим уметања пре него што то учине.

#! / бин / басх

уницес = ’ГНУ / Линук ФрееБСД ОпенБСД НетБСД Соларис ОпенИндиана Дарвин ХП-УКС Миник’

за уник у $ уницес

урадите

ецхо $ уник

Готово

Поново сачувајте датотеку користећи Цтрл + О, а затим Цтрл + Кс метод у нано-у или Есц тхен: вк метод ин ви пре издавања наредбе цхмод + к форЛооп како би га учинили извршним. Једном кад га покренете, покрените га куцањем ./форЛооп на брзину. Петља фор приморава ецхо наредбу да заузврат ради на свакој од ставки у променљивој уницес. Могли бисте још једном заменити ту листу било којим аргументом и ехо заменити било којом наредбом за аутоматизацију дугих процеса.

3. метод: Лооп за време

Почните да уређујете трећу датотеку која се зове вхилеЛооп помоћу нано, ви или било ког другог уређивача који желите да користите. Ако бисте више волели да користите графички уређивач текста, онда бисте то заиста могли да урадите и са било којим од ових пројеката, под условом да датотеку ставите у исти директоријум у којем радите унутар командне линије .

Унутар ове датотеке желећете да додате редове:

#! / бин / басх

н = 0

док [$ н -ле 20]

урадите

ецхо $ н

((н ++))

Готово

Спремите датотеку на исти начин као и остале и изађите из програма за уређивање текста. Када изађете, издајте команду цхмод + к вхилеЛооп да вам дозволи да га извршите, а затим покренете ./ вхилеЛооп да га покрене. Видећете исти излаз који је изашао из скрипте тиллЛооп из прве методе, јер броји од 0 до 20 у више него вероватно делићу секунде.

Ово је изврсна демонстрација чињенице да постоји више начина да се то учини кад год радите са петљама на овај начин. Иако технички не постоји погрешан начин за то, вероватно ћете наићи на ауторе скрипти који тврде да би требало да пишете своје скрипте ближе начину на који то ради програмски језик Ц или, пак, други могу да предложе да то не треба да радите. Искрено, вероватно постоји много исправних начина за решавање проблема.

Слободно избришите своје скрипте кад завршите са вежбањем са њима.

3 минута читања